A modern Linux package manager written in Rust, using Starlark (a Python dialect) for package definitions.
- Starlark-based package definitions: Package build scripts use Starlark syntax, a Python-like dialect that is simple and secure
- Dependency resolution: Automatic dependency installation and conflict detection
- Repository support: Multiple repository support with syncing capabilities
- Build system: Integrated build system for compiling packages from source
- Database tracking: SQLite-like database for tracking installed packages and files
cargo build --releasesolar init --configsolar install <package-name>solar remove <package-name>solar search <pattern>solar updatesolar upgradecd packages/bash
solar buildsolar listsolar info <package-name>Packages are defined using solar.lua files with Starlark syntax:
pkg("bash", "5.2.15")
description = "The GNU Bourne Again Shell"
homepage = "https://www.gnu.org/software/bash/"
license = "GPL-3.0-or-later"
arch(["x86_64", "aarch64"])
depends(["glibc", "ncurses", "readline"])
source(["https://ftp.gnu.org/gnu/bash/bash-5.2.15.tar.gz"])
sha256sums(["abc123..."])
prepare = """
# Prepare build environment
./configure --prefix=/usr
"""
build = """
make
"""
package = """
make install
"""StarkSystem/
├── Cargo.toml # Main project configuration
├── solarsuite/ # Starlark interpreter for package definitions
│ ├── Cargo.toml
│ └── src/lib.rs
├── src/
│ ├── main.rs # CLI entry point
│ ├── lib.rs # Core library
│ ├── config.rs # Configuration management
│ ├── database.rs # Package database
│ ├── package.rs # Package definitions
│ ├── repo.rs # Repository handling
│ ├── build.rs # Build system
│ └── error.rs # Error types
└── packages/ # Package definitions
├── bash/
│ └── solar.lua
└── ...
- solar: Main package manager binary and library
- solarsuite: Starlark-based package definition interpreter (uses starlark-rust)
clap- CLI argument parsingtokio- Async runtimereqwest- HTTP client (with rustls for TLS)serde- Serializationtoml- Configuration filestar,flate2- Archive handlingsha2- Checksum verificationtracing- Logging
MIT