Download
Install with apt
Debian 12 or later and Ubuntu 22.04 or later, on amd64 and arm64 (including AWS Graviton). Needs curl:
sudo curl -fsSLo /etc/apt/keyrings/siftp.gpg https://apt.siftp.org/siftp-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/siftp.gpg] https://apt.siftp.org stable main" | sudo tee /etc/apt/sources.list.d/siftp.list
sudo apt update && sudo apt install siftpd
The repository is signed with an Ed25519 key, fingerprint 705C FD11 EA2D 784D 8110 F551 B34A 5D63 8C91 9943. Compare it with gpg --show-keys /etc/apt/keyrings/siftp.gpg. The package starts the service with the hardened systemd unit; what it sets up and how to add users: Operations.
Releases
Each release has, for Linux x86_64 and aarch64:
| File | Contents |
|---|---|
siftpd-<version>-<arch>-linux.tar.gz | Binary, example config, systemd unit, logrotate and Prometheus files, licenses |
siftpd_<version>-1_<arch>.deb | Debian/Ubuntu package with a hardened systemd unit |
siftpd-<version>-<arch>.cdx.json | CycloneDX SBOM |
SHA256SUMS | Checksums for all files |
*.sig, *.pem | Sigstore signatures and certificates |
Plus a multi-arch container image, signed with cosign. How to verify: Operations.
The binaries link glibc 2.35 or newer (Ubuntu 22.04, Debian 12, RHEL 9 and later).
Build from source
cargo build --release -p siftpd # assembly kernels on
cargo build --release -p siftpd --features io-uring # plus the io_uring data path (Linux)
cargo build --release -p siftpd --no-default-features # pure Rust
Requirements: Rust 1.89 or newer and a C compiler (for ring and the assembly kernels). Packages:
cargo deb -p siftpd # .deb (cargo install cargo-deb)
docker build -f packaging/container/Dockerfile -t siftp .
Platforms
| Platform | Status |
|---|---|
| Linux x86_64, aarch64 | Supported; all fast paths |
| macOS (Apple silicon, Intel) | Supported for small deployments; pooled data path; launchd plist in packaging/launchd/ |
| Other Unix | Builds with the pure-Rust paths; not tested in CI |
| Windows | Builds (CI lane, tests/windows/cross-check.sh) and passes a smoke test under Wine. Not supported for deployment: no service integration, and secret files do not get owner-only permissions |
Verify a build
cargo test --workspace
tests/interop/run.sh target/release/siftpd # needs curl, lftp, OpenSSH, python3
bench/run.sh --quick # needs Docker
MIT or Apache-2.0, at your option.