chore: initial sanitized public snapshot

This commit is contained in:
Aria2 Rust Pro Contributors
2026-07-18 14:51:59 +08:00
commit 14dcf8c9bf
321 changed files with 76893 additions and 0 deletions
+144
View File
@@ -0,0 +1,144 @@
# aria2-rust-pro
`aria2-rust-pro` is an independently maintained Rust 2024 implementation of
an aria2-compatible download client. Its compatibility and migration work are
informed by [Aria2-Pro-Core](https://github.com/P3TERX/Aria2-Pro-Core) and the
upstream [aria2 project](https://github.com/aria2/aria2).
This repository is the maintained Rust line for the project. It aims to keep
the familiar aria2 configuration and RPC surface, while moving the
implementation onto a modern Cargo-based toolchain, stricter quality gates, and
source-first packaging automation.
## Project Origins
- [Aria2-Pro-Core](https://github.com/P3TERX/Aria2-Pro-Core) is the direct
compatibility and migration reference for the enhanced deployment profile.
- [aria2](https://github.com/aria2/aria2) is the upstream project whose CLI,
configuration, and RPC contracts guide this implementation.
See [Project Origins](docs/project-origins.md) for the scope of those
references and this project's independent maintenance model.
## What This Repository Provides
- a Rust-native `aria2-rust-pro` CLI with aria2-style config and RPC behavior
- a Docker image build that preserves the familiar Pro Docker environment model
- a Cargo-native `xtask` workflow for release packaging, Docker smoke tests,
and local export
- strict workspace-wide linting, testing, and dependency policy enforcement
- local release staging for Windows artifacts and portable Docker image tar
exports
## Current Snapshot
The repository already includes:
- a local Windows release packaging flow
- a local Docker image export flow
- JSON-RPC and XML-RPC coverage for representative aria2 client paths
- BitTorrent, Metalink, HTTP, HTTPS, XML-RPC, JSON-RPC, and SFTP feature
surfaces in the current binary banner
The current public repository state should be read as:
- source of truth for ongoing Rust development
- suitable for local builds, local packaging, and local Docker deployment
- released as a source snapshot under `v1.0.0`; binary and image assets are
built locally from the documented packaging workflows
- not yet presented as a public container registry or broad multi-platform
binary distribution service
## Quick Start
### Build the binary
```powershell
rtk cargo build --release -p aria2-rust-pro-cli --bin aria2-rust-pro
```
### Check the version banner
```powershell
.\target\release\aria2-rust-pro.exe --version
```
### Run the main validation lanes
```powershell
rtk cargo check --workspace --all-targets --all-features --locked
rtk cargo nextest run --workspace --all-targets --all-features --locked
```
### Package a local release artifact
```powershell
rtk cargo run --manifest-path .\xtask\Cargo.toml -- release package-local --build
```
### Build and export a local Docker image tar
```powershell
rtk cargo run --manifest-path .\xtask\Cargo.toml -- docker export-local --build
```
## Repository Guide
- [docs/deployment/README.md](docs/deployment/README.md): native and Docker
deployment guide
- [docs/migration/README.md](docs/migration/README.md): migration notes from
existing [Aria2-Pro-Core](https://github.com/P3TERX/Aria2-Pro-Core) and
Aria2-Pro-Docker installs
- [docs/release/README.md](docs/release/README.md): local release packaging,
Docker export, and artifact manifest flow
- [docs/release/RELEASE-NOTES-TEMPLATE.md](docs/release/RELEASE-NOTES-TEMPLATE.md):
release announcement template
- [docs/compatibility/aria2-compat-ledger.md](docs/compatibility/aria2-compat-ledger.md):
compatibility tracking ledger
- [docs/testing/quality-gates.md](docs/testing/quality-gates.md): required test
and lint gates
- [CONTRIBUTING.md](CONTRIBUTING.md): contribution workflow and repository
expectations
- [CHANGELOG.md](CHANGELOG.md): release-facing change history
## Workspace Layout
- `crates/aria2-rust-pro-cli`: CLI surface, config projection, runtime launch,
and rendering
- `crates/aria2-rust-pro-compat`: aria2-facing option and compatibility layer
- `crates/aria2-rust-pro-core`: scheduler, engine, runtime coordination
- `crates/aria2-rust-pro-protocol`: HTTP, BitTorrent, Metalink, and transport
domain logic
- `crates/aria2-rust-pro-rpc`: JSON-RPC, XML-RPC, routing, and handlers
- `crates/aria2-rust-pro-storage`: session and persistence layers
- `crates/aria2-rust-pro-tests`: integration, compatibility, and pressure tests
- `xtask/`: Cargo-native project automation
- `docker/`: image build, entrypoint, compose example, and bundled defaults
## Packaging and Local Artifacts
Local staged artifacts live under:
- `dist/release/v<version>/` for packaged release archives
- `dist/docker/v<version>/` for portable Docker image tar exports
The package and export commands emit checksum files and JSON manifests beside
the artifacts so a staged build can be moved to another machine and verified
without guessing which binary or image tag it came from.
## Compatibility Direction
The compatibility target is practical aria2 interoperability rather than a
novel CLI surface. That means the project prioritizes:
- aria2-style config semantics
- existing RPC client compatibility
- migration paths from [Aria2-Pro-Core](https://github.com/P3TERX/Aria2-Pro-Core)
and Aria2-Pro-Docker
- release packaging that keeps runtime evidence with the artifact
## License
`aria2-rust-pro` is licensed under [GPL-2.0-or-later](LICENSE). OpenSSL
linking-exception handling remains a release and documentation concern carried
forward from the aria2 ecosystem.