feat: Implement full network functionality with HTTP and P2P modes #1

Merged
wt merged 1 commits from develop into main 2025-08-03 10:46:57 +07:00
Owner

This major update introduces a robust, multi-faceted networking
capability, allowing backups to be managed through a central server or
via direct peer-to-peer connections.

  • Add serve command: Implemented a new serve command that runs a
    persistent HTTP server. This allows for a centralized backup management
    workflow where multiple clients can upload and download archives. -
    HTTP Client Mode: The create and restore commands can now
    function as HTTP clients, targeting a serve instance using the
    ip:port/filename address format.

  • Restore P2P Mode: The original peer-to-peer streaming
    functionality (where restore acts as a TCP server and create as a
    client) has been fully restored and integrated into the new, more robust
    command architecture. - Accurate Network Progress: Fixed a critical
    bug where network progress bars would not display correctly. The serve
    command now sends a Content-Length header, and restore is refactored
    to handle asynchronous state updates correctly. - Smart Address
    Parsing
    : The application now automatically distinguishes between HTTP
    mode (ip:port/filename) and P2P mode (ip:port), providing a seamless
    user experience.

  • Update README.md: The project's README has been completely
    rewritten to document all three operating modes (Local, HTTP Server,
    P2P) with clear usage examples. - Add Gitea Actions Workflow: A new
    CI pipeline (.gitea/workflows/build-and-test.yml) has been added to
    automatically build and test the application on every push and pull
    request.

This major update introduces a robust, multi-faceted networking capability, allowing backups to be managed through a central server or via direct peer-to-peer connections. - **Add `serve` command**: Implemented a new `serve` command that runs a persistent HTTP server. This allows for a centralized backup management workflow where multiple clients can upload and download archives. - **HTTP Client Mode**: The `create` and `restore` commands can now function as HTTP clients, targeting a `serve` instance using the `ip:port/filename` address format. - **Restore P2P Mode**: The original peer-to-peer streaming functionality (where `restore` acts as a TCP server and `create` as a client) has been fully restored and integrated into the new, more robust command architecture. - **Accurate Network Progress**: Fixed a critical bug where network progress bars would not display correctly. The `serve` command now sends a `Content-Length` header, and `restore` is refactored to handle asynchronous state updates correctly. - **Smart Address Parsing**: The application now automatically distinguishes between HTTP mode (`ip:port/filename`) and P2P mode (`ip:port`), providing a seamless user experience. - **Update `README.md`**: The project's README has been completely rewritten to document all three operating modes (Local, HTTP Server, P2P) with clear usage examples. - **Add Gitea Actions Workflow**: A new CI pipeline (`.gitea/workflows/build-and-test.yml`) has been added to automatically build and test the application on every push and pull request.
wt added 1 commit 2025-08-03 10:46:46 +07:00
feat: Implement full network functionality with HTTP and P2P modes
Go Build and Test / build-and-test (pull_request) Successful in 37s
6b1a302c18
This major update introduces a robust, multi-faceted networking
capability, allowing backups to be managed through a central server or
via direct peer-to-peer connections.

- **Add `serve` command**: Implemented a new `serve` command that runs a
persistent HTTP server. This allows for a centralized backup management
workflow where multiple clients can upload and download archives. -
**HTTP Client Mode**: The `create` and `restore` commands can now
function as HTTP clients, targeting a `serve` instance using the
`ip:port/filename` address format.

- **Restore P2P Mode**: The original peer-to-peer streaming
functionality (where `restore` acts as a TCP server and `create` as a
client) has been fully restored and integrated into the new, more robust
command architecture. - **Accurate Network Progress**: Fixed a critical
bug where network progress bars would not display correctly. The `serve`
command now sends a `Content-Length` header, and `restore` is refactored
to handle asynchronous state updates correctly. - **Smart Address
Parsing**: The application now automatically distinguishes between HTTP
mode (`ip:port/filename`) and P2P mode (`ip:port`), providing a seamless
user experience.

- **Update `README.md`**: The project's README has been completely
rewritten to document all three operating modes (Local, HTTP Server,
P2P) with clear usage examples. - **Add Gitea Actions Workflow**: A new
CI pipeline (`.gitea/workflows/build-and-test.yml`) has been added to
automatically build and test the application on every push and pull
request.
wt merged commit f2e670f66a into main 2025-08-03 10:46:57 +07:00
wt deleted branch develop 2025-08-03 10:46:57 +07:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wt/backup#1