Soar is a Fast, Modern, Bloat-Free Distro-Independent Package Manager that Just Works
Supports Static Binaries, AppImages, and other Portable formats on any *Unix-based Distro
This repo, builds top crates from crates.io as Statically Linked relocatable binaries for aarch64-Linux
, loongarch64-Linux
, riscv64-Linux
& x86_64-Linux
.
The build script uses Cross to compile the crates on Github Actions & then uploads the artifacts to ghcr.io using Oras.
All of which are downloadable & installable with soar by adding pkgforge-cargo
as an external repo.
- command-line-utilities:
categories = ["command-line-utilities"]
- Statically Linked:
-C target-feature=+crt-static
- Self Contained:
-C link-self-contained=yes
- Nightly Toolchain:
+nightly
- All Features:
--all-features
- LTO:
-C lto=yes
- All Optimizations:
-C opt-level=3
- Stripped:
-C debuginfo=none -C strip=symbols
- Updated: Crates older than last year i.e
date -d 'last year' '+%Y-01-01'
are dropped. - Little/No Dependency on system libraries: Crates depending on system libraries will simply fail.
[+] Flags: -C target-feature=+crt-static \
-C default-linker-libraries=yes \
-C link-self-contained=yes \
-C prefer-dynamic=no \
-C embed-bitcode=yes \
-C lto=yes \
-C opt-level=3 \
-C debuginfo=none \
-C strip=symbols \
-C link-arg=-Wl,-S \
-C link-arg=-Wl,--build-id=none \
-C link-arg=-Wl,--discard-all \
-C link-arg=-Wl,--strip-all
🤖 HOST_TRIPLET |
🦀 RUST_TARGET |
---|---|
aarch64-Linux |
aarch64-unknown-linux-musl |
loongarch64-Linux |
loongarch64-unknown-linux-musl |
riscv64-Linux |
riscv64gc-unknown-linux-musl |
x86_64-Linux |
x86_64-unknown-linux-musl |
Note
- ℹ️ It is usual for most workflow run to
fail
since it's rare a crate builds for ALLhosts
- 🗄️ Table of Crates (Sorted by Rank): https://github.com/pkgforge-cargo/builder/blob/main/data/CRATES_PROCESSED.md
- 📜 List of Crates (Tried Building): https://github.com/pkgforge-cargo/builder/blob/main/data/QUEUE_LIST.txt
- 📜 List of Crates (Actually Built): https://github.com/pkgforge-cargo/builder/blob/main/data/CACHE_LIST.txt
- A single crate may provide several
executables
i.epackages
.
Source 🗃️ | Total Packages 📦 |
---|---|
🦀 Crates (Total ) |
|
🦀 Crates (Bin Only ) |
|
🦀 Crates (Processed ) |
|
🦀 Crates (Built ) |
|
🦀 Crates (Queued ) |
|
🦀 Packages (aarch64-Linux ) |
|
🦀 Packages (loongarch64-Linux ) |
|
🦀 Packages (riscv64-Linux ) |
|
🦀 Packages (x86_64-Linux ) |
|
🦀 Packages (Total Queued ) |
% |
🦀 Packages (Total Built ) |
- Crates are downloaded from
crates.io
- CI/CD run on Github Actions
- Build Logs are viewable using
soar log ${PKG_NAME}
- Build Src is downloadable by downloading:
{GHCR_PKG}-srcbuild-${BUILD_ID}
- Artifact Attestation & Build Provenance are created/updated per build.
graph TD
A[crates.io] -->|Top Crates List| B[CRATES_DUMP.json]
B --> C[GitHub Repository<br/>pkgforge-cargo/builder]
C --> D[Build Script<br/>builder.sh]
D --> E[Cross Compiler]
E --> F1[aarch64-Linux<br/>Static Binary]
E --> F2[loongarch64-Linux<br/>Static Binary]
E --> F3[riscv64-Linux<br/>Static Binary]
E --> F4[x86_64-Linux<br/>Static Binary]
F1 --> G[GitHub Actions<br/>Build Pipeline]
F2 --> G
F3 --> G
F4 --> G
G --> H[Oras Tool]
H --> I[ghcr.io<br/>Container Registry]
I --> J[External Repository<br/>pkgforge-cargo]
J --> K[Soar Package Manager]
K --> L[End Users]
style A fill:#ff6b6b,stroke:#333,stroke-width:2px,color:#fff
style I fill:#4ecdc4,stroke:#333,stroke-width:2px,color:#fff
style K fill:#45b7d1,stroke:#333,stroke-width:2px,color:#fff
style L fill:#96ceb4,stroke:#333,stroke-width:2px,color:#fff
classDef buildProcess fill:#ffd93d,stroke:#333,stroke-width:2px
class D,E,G,H buildProcess
classDef binary fill:#ff8fab,stroke:#333,stroke-width:2px,color:#fff
class F1,F2,F3,F4 binary