{"id":33918848,"url":"https://github.com/ibrahimcesar/xcargo","last_synced_at":"2026-03-11T05:31:13.706Z","repository":{"id":324895876,"uuid":"1098988190","full_name":"ibrahimcesar/xcargo","owner":"ibrahimcesar","description":"🎯 Cross-compilation, zero friction - Build Rust for any target with automatic toolchain management, Zig integration, and containers","archived":false,"fork":false,"pushed_at":"2026-02-22T17:31:27.000Z","size":1771,"stargazers_count":1,"open_issues_count":22,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-10T00:41:28.541Z","etag":null,"topics":["build-tool","cargo","cli","cross-compilation","cross-platform","developer-tools","docker","linux","macos","multiplatform","rust","toolchain","windows","zig"],"latest_commit_sha":null,"homepage":"https://ibrahimcesar.github.io/xcargo/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ibrahimcesar.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY_EVALUATION.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-18T12:06:44.000Z","updated_at":"2025-11-29T02:53:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ibrahimcesar/xcargo","commit_stats":null,"previous_names":["ibrahimcesar/apex","ibrahimcesar/xcargo"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ibrahimcesar/xcargo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimcesar%2Fxcargo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimcesar%2Fxcargo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimcesar%2Fxcargo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimcesar%2Fxcargo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ibrahimcesar","download_url":"https://codeload.github.com/ibrahimcesar/xcargo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimcesar%2Fxcargo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30372166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build-tool","cargo","cli","cross-compilation","cross-platform","developer-tools","docker","linux","macos","multiplatform","rust","toolchain","windows","zig"],"created_at":"2025-12-12T08:35:08.075Z","updated_at":"2026-03-11T05:31:13.678Z","avatar_url":"https://github.com/ibrahimcesar.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# xcargo 🎯\n\n_Cross-compilation, zero friction_\n\n**xcargo** is a Rust cross-compilation tool that just works. Automatic toolchain management, beautiful output, and zero-configuration cross-compilation.\n\n[![Crates.io](https://img.shields.io/crates/v/xcargo.svg)](https://crates.io/crates/xcargo)\n[![Documentation](https://docs.rs/xcargo/badge.svg)](https://docs.rs/xcargo)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[Installation](#-installation) | [Quick Start](#-quick-start) | [Documentation](https://ibrahimcesar.github.io/xcargo) | [Examples](#-usage-examples)\n\n\u003c/div\u003e\n\n## ✨ Features\n\n- 🎯 **Zero Configuration** - Works out of the box for most targets\n- 🔧 **Auto-Installation** - Automatically installs missing toolchains and targets\n- 🎨 **Beautiful Output** - Colored messages with helpful tips and hints\n- ⚡ **Smart Detection** - Figures out what you need automatically\n- 📦 **Interactive Setup** - TUI wizard for easy project configuration\n- 🚀 **Parallel Builds** - Build multiple targets concurrently for 2-3x speedup\n- 🦎 **Zig Integration** - Auto-detect Zig for zero-config cross-compilation (macOS/Windows → Linux)\n- 🐳 **Container Support** - Docker/Podman integration for complex cross-compilation\n- 🌍 **Many Targets** - Linux, Windows, macOS, WebAssembly, and more\n- 🤖 **CI/CD Ready** - Perfect for GitHub Actions, GitLab CI\n\n## 📦 Installation\n\n### Quick Install (Recommended)\n\n#### macOS / Linux\n\n```bash\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/ibrahimcesar/xcargo/releases/latest/download/xcargo-installer.sh | sh\n```\n\n#### Windows (PowerShell)\n\n```powershell\nirm https://github.com/ibrahimcesar/xcargo/releases/latest/download/xcargo-installer.ps1 | iex\n```\n\n### Package Managers\n\n#### Homebrew (macOS / Linux)\n\n```bash\nbrew install ibrahimcesar/tap/xcargo\n```\n\n#### Cargo (from source)\n\n```bash\n# Coming soon: cargo install xcargo\n\n# Install from GitHub\ncargo install --git https://github.com/ibrahimcesar/xcargo\n```\n\n### Prebuilt Binaries\n\nDownload prebuilt binaries from the [latest release](https://github.com/ibrahimcesar/xcargo/releases/latest):\n\n- **macOS (Apple Silicon)**: [xcargo-aarch64-apple-darwin.tar.xz](https://github.com/ibrahimcesar/xcargo/releases/latest/download/xcargo-aarch64-apple-darwin.tar.xz)\n- **macOS (Intel)**: [xcargo-x86_64-apple-darwin.tar.xz](https://github.com/ibrahimcesar/xcargo/releases/latest/download/xcargo-x86_64-apple-darwin.tar.xz)\n- **Linux (glibc)**: [xcargo-x86_64-unknown-linux-gnu.tar.xz](https://github.com/ibrahimcesar/xcargo/releases/latest/download/xcargo-x86_64-unknown-linux-gnu.tar.xz)\n- **Linux (musl)**: [xcargo-x86_64-unknown-linux-musl.tar.xz](https://github.com/ibrahimcesar/xcargo/releases/latest/download/xcargo-x86_64-unknown-linux-musl.tar.xz)\n- **Windows (MSVC)**: [xcargo-x86_64-pc-windows-msvc.zip](https://github.com/ibrahimcesar/xcargo/releases/latest/download/xcargo-x86_64-pc-windows-msvc.zip)\n\nAll downloads include SHA256 checksums for verification.\n\nSee the full [Installation Guide](https://ibrahimcesar.github.io/xcargo/installation) for more options.\n\n### Interactive Setup\n\nThe easiest way to get started is with the interactive setup wizard:\n\n```bash\nxcargo init --interactive\n```\n\nThis will guide you through:\n- ✨ Selecting target platforms\n- ⚙️ Configuring parallel builds\n- 🔧 Setting up caching\n- 🐳 Choosing container strategy\n- 📦 Installing targets automatically\n\n### First Build\n\n```bash\n# Build for your current platform\nxcargo build\n\n# Build for a specific target\nxcargo build --target x86_64-pc-windows-gnu\n\n# Build for all configured targets\nxcargo build --all\n\n# Release build\nxcargo build --target x86_64-unknown-linux-gnu --release\n```\n\n## 💡 Usage Examples\n\n### Basic Cross-Compilation\n\n```bash\n# Build for Windows from any platform\nxcargo build --target x86_64-pc-windows-gnu\n\n# Build for Linux ARM\nxcargo build --target aarch64-unknown-linux-gnu\n\n# Build for macOS (M1/M2)\nxcargo build --target aarch64-apple-darwin\n\n# Build for WebAssembly\nxcargo build --target wasm32-unknown-unknown\n\n# Use container for build (requires --features container)\nxcargo build --target x86_64-unknown-linux-gnu --container\n```\n\n### Zero-Config Cross-Compilation with Zig\n\nxcargo automatically detects [Zig](https://ziglang.org/) and uses it for cross-compilation when building for a different OS. No configuration needed!\n\n```bash\n# Install Zig (optional - enables native cross-compilation)\n# macOS\nbrew install zig\n\n# Windows\nscoop install zig\n# or: choco install zig\n\n# Linux\n# Download from https://ziglang.org/download/\n```\n\n**With Zig installed, cross-compilation just works:**\n\n```bash\n# On macOS or Windows, build for Linux - no Docker needed!\nxcargo build --target x86_64-unknown-linux-gnu\n\n# Output:\n# ℹ Zig 0.15.2 detected, using for cross-compilation\n# 💡 Cross-compiling using Zig toolchain\n# ✓ Build completed for x86_64-unknown-linux-gnu\n```\n\n**Supported targets with Zig:**\n- ✅ `x86_64-unknown-linux-gnu`\n- ✅ `aarch64-unknown-linux-gnu`\n- ✅ `armv7-unknown-linux-gnueabihf`\n- ⚠️ `x86_64-unknown-linux-musl` (may have issues)\n\n### Target Management\n\n```bash\n# List common cross-compilation targets\nxcargo target list\n\n# Show installed targets\nxcargo target list --installed\n\n# Get detailed info about a target\nxcargo target info x86_64-pc-windows-gnu\n\n# Add a new target\nxcargo target add x86_64-unknown-linux-musl\n```\n\n### Configuration\n\n```bash\n# Show current configuration\nxcargo config\n\n# Show default configuration template\nxcargo config --default\n\n# Initialize with defaults\nxcargo init\n\n# Interactive setup wizard\nxcargo init --interactive\n```\n\n## ⚙️ Configuration File\n\nCreate an `xcargo.toml` in your project root:\n\n```toml\n[targets]\n# Default targets to build when no target is specified\ndefault = [\n    \"x86_64-unknown-linux-gnu\",\n    \"x86_64-pc-windows-gnu\",\n]\n\n# Per-target custom configuration\n[targets.\"x86_64-pc-windows-gnu\"]\nlinker = \"x86_64-w64-mingw32-gcc\"\n\n[targets.\"x86_64-pc-windows-gnu\".env]\nCC = \"x86_64-w64-mingw32-gcc\"\n\n[build]\n# Enable parallel builds for multiple targets (2-3x faster!)\nparallel = true\n\n# Enable build caching\ncache = true\n\n# Force container usage (not yet implemented)\nforce_container = false\n\n# Additional cargo flags to pass to all builds\ncargo_flags = []\n\n[container]\n# Container runtime: auto, docker, podman\n# Note: youki (pure Rust OCI runtime) will be supported in a future release\nruntime = \"auto\"\n\n# When to use containers\nuse_when = \"target.os != host.os\"\n\n# Image pull policy\npull_policy = \"if-not-present\"\n\n# Build profiles for different scenarios\n[profiles.release-all]\ntargets = [\n    \"x86_64-unknown-linux-gnu\",\n    \"x86_64-pc-windows-gnu\",\n    \"x86_64-apple-darwin\",\n    \"aarch64-unknown-linux-gnu\",\n    \"aarch64-apple-darwin\",\n]\n```\n\n## 🎯 Supported Targets\n\nxcargo supports all Rust targets. Common ones include:\n\n**Linux**\n- `x86_64-unknown-linux-gnu` - Linux x86_64\n- `x86_64-unknown-linux-musl` - Linux x86_64 (static)\n- `aarch64-unknown-linux-gnu` - Linux ARM64\n\n**Windows**\n- `x86_64-pc-windows-gnu` - Windows x86_64 (MinGW)\n- `x86_64-pc-windows-msvc` - Windows x86_64 (MSVC)\n\n**macOS**\n- `x86_64-apple-darwin` - macOS x86_64\n- `aarch64-apple-darwin` - macOS ARM64 (M1/M2)\n\n**WebAssembly**\n- `wasm32-unknown-unknown` - WebAssembly\n\nRun `xcargo target list` to see all common targets with descriptions.\n\n## 🔧 Linker Configuration\n\nFor successful cross-compilation, you often need to configure linkers. xcargo makes this easy:\n\n### Windows Cross-Compilation (from macOS/Linux)\n\n```toml\n[targets.\"x86_64-pc-windows-gnu\"]\nlinker = \"x86_64-w64-mingw32-gcc\"\n\n[targets.\"x86_64-pc-windows-gnu\".env]\nCC = \"x86_64-w64-mingw32-gcc\"\nAR = \"x86_64-w64-mingw32-ar\"\n```\n\n**Install on macOS:** `brew install mingw-w64`\n**Install on Linux:** `sudo apt install mingw-w64`\n\n### Linux Cross-Compilation (from macOS)\n\n```toml\n[targets.\"x86_64-unknown-linux-gnu\"]\nlinker = \"x86_64-linux-gnu-gcc\"\n\n[targets.\"x86_64-unknown-linux-gnu\".env]\nCC = \"x86_64-linux-gnu-gcc\"\n```\n\n**Note:** Linux cross-compilation from macOS often requires containers\n\n### What xcargo does automatically:\n- ✅ Verifies linker exists in PATH before building\n- ✅ Sets `CARGO_TARGET_*_LINKER` environment variable\n- ✅ Applies custom environment variables (`CC`, `AR`, etc.)\n- ✅ Shows helpful errors with installation instructions if linker is missing\n\n## 🐳 Container Builds\n\nFor complex cross-compilation scenarios where native toolchains are difficult to set up, xcargo supports container-based builds using Docker or Podman.\n\n### Installation with Container Support\n\n```bash\n# Install xcargo with container feature\ncargo install xcargo --features container\n\n# Ensure you have Docker or Podman installed\ndocker --version  # or: podman --version\n```\n\n### When to Use Containers\n\nContainer builds are ideal when:\n- 🌐 Cross-compiling between different operating systems (e.g., macOS → Linux)\n- 🔧 Native toolchains are difficult to install or configure\n- 🎯 You need reproducible builds across different development machines\n- 📦 Your project has complex system dependencies\n\n### Basic Usage\n\n```bash\n# Build using a container\nxcargo build --target x86_64-unknown-linux-gnu --container\n\n# Container builds work with all flags\nxcargo build --target aarch64-unknown-linux-gnu --container --release\n```\n\n### Automatic Container Detection\n\nConfigure xcargo to automatically use containers when needed:\n\n```toml\n# xcargo.toml\n[container]\n# Container runtime: auto, docker, podman\nruntime = \"auto\"\n\n# Automatically use containers when cross-compiling to different OS\nuse_when = \"target.os != host.os\"\n\n# Or always use containers\n# use_when = \"always\"\n\n# Or never use containers\n# use_when = \"never\"\n\n# Image pull policy: always, if-not-present, never\npull_policy = \"if-not-present\"\n```\n\nWith this configuration, xcargo will automatically use containers when building for a different OS:\n\n```bash\n# On macOS, this will automatically use a container\nxcargo build --target x86_64-unknown-linux-gnu\n\n# On Linux, this will use native toolchain\nxcargo build --target x86_64-unknown-linux-gnu\n```\n\n### Supported Container Targets\n\nxcargo uses pre-built images from [cross-rs](https://github.com/cross-rs/cross) for these targets:\n\n**Linux:**\n- `x86_64-unknown-linux-gnu`\n- `x86_64-unknown-linux-musl`\n- `aarch64-unknown-linux-gnu`\n- `aarch64-unknown-linux-musl`\n- `armv7-unknown-linux-gnueabihf`\n- `arm-unknown-linux-gnueabihf`\n\n**Windows:**\n- `x86_64-pc-windows-gnu`\n\n**Android:**\n- `aarch64-linux-android`\n- `armv7-linux-androideabi`\n- `x86_64-linux-android`\n- `i686-linux-android`\n\n**Note:** macOS and WebAssembly targets don't use containers:\n- macOS cross-compilation requires osxcross or building on macOS\n- WebAssembly builds work natively without containers\n\n### Container Requirements\n\n**Docker:**\n```bash\n# macOS\nbrew install --cask docker\n# Or download from https://www.docker.com/products/docker-desktop\n\n# Linux\nsudo apt install docker.io  # Ubuntu/Debian\nsudo dnf install docker      # Fedora\nsudo systemctl start docker\nsudo usermod -aG docker $USER  # Add yourself to docker group\n```\n\n**Podman (Docker-compatible alternative):**\n```bash\n# macOS\nbrew install podman\npodman machine init\npodman machine start\n\n# Linux\nsudo apt install podman     # Ubuntu/Debian\nsudo dnf install podman      # Fedora\n```\n\n### Advanced Configuration\n\n```toml\n[container]\n# Prefer specific runtime\nruntime = \"podman\"\n\n# Custom registry for images\nregistry = \"my-registry.com/cross-images\"\n\n# Always use containers for reproducible builds\nuse_when = \"always\"\n\n# Per-target container configuration\n[targets.\"x86_64-unknown-linux-gnu\"]\nlinker = \"x86_64-linux-gnu-gcc\"\n\n[targets.\"x86_64-unknown-linux-gnu\".env]\nCC = \"x86_64-linux-gnu-gcc\"\nCUSTOM_VAR = \"value\"\n```\n\n### How Container Builds Work\n\n1. **Runtime Detection** - Finds Docker or Podman on your system\n2. **Image Selection** - Chooses the appropriate cross-rs image for your target\n3. **Volume Mounting** - Mounts your project and cargo cache into the container\n4. **Build Execution** - Runs `cargo build` inside the container\n5. **Artifact Extraction** - Build artifacts appear in your local `target/` directory\n\n```\n┌─────────────────────────────────┐\n│ xcargo build --container        │\n└──────────┬──────────────────────┘\n           │\n           ▼\n   ┌───────────────────┐\n   │ Detect container  │\n   │ runtime (Docker/  │\n   │ Podman)           │\n   └───────┬───────────┘\n           │\n           ▼\n   ┌───────────────────┐\n   │ Pull cross-rs     │\n   │ image for target  │\n   └───────┬───────────┘\n           │\n           ▼\n   ┌───────────────────┐\n   │ Mount project \u0026   │\n   │ cargo cache       │\n   └───────┬───────────┘\n           │\n           ▼\n   ┌───────────────────┐\n   │ Run cargo build   │\n   │ in container      │\n   └───────┬───────────┘\n           │\n           ▼\n   ┌───────────────────┐\n   │ Extract artifacts │\n   │ to local target/  │\n   └───────────────────┘\n```\n\n### Troubleshooting\n\n**Container runtime not found:**\n```bash\n# Check if Docker/Podman is installed and running\ndocker info\n# or\npodman info\n```\n\n**Permission denied errors (Linux):**\n```bash\n# Add your user to the docker group\nsudo usermod -aG docker $USER\n# Then log out and back in\n```\n\n**Image pull failures:**\n```bash\n# Manually pull the image\ndocker pull ghcr.io/cross-rs/x86_64-unknown-linux-gnu:latest\n\n# Check your network/proxy settings\ndocker info | grep -i proxy\n```\n\n## 🔧 How It Works\n\n1. **Target Detection** - Analyzes the target triple and determines requirements\n2. **Toolchain Check** - Verifies the Rust toolchain and target are installed\n3. **Auto-Installation** - Installs missing components via rustup\n4. **Smart Building** - Uses native builds when possible, suggests containers when needed\n5. **Helpful Output** - Shows tips, hints, and next steps\n\n```\n┌──────────────────────────────┐\n│ xcargo build --target linux  │\n└──────────┬───────────────────┘\n           │\n           ▼\n   ┌───────────────┐\n   │ Detect target │\n   │ requirements  │\n   └───────┬───────┘\n           │\n           ▼\n   ┌────────────────┐\n   │ Check toolchain│\n   │ \u0026 install if   │\n   │ missing        │\n   └───────┬────────┘\n           │\n           ▼\n   ┌────────────────┐\n   │ Execute cargo  │\n   │ build with     │\n   │ proper flags   │\n   └────────────────┘\n```\n\n## 🤖 CI/CD Integration\n\n### GitHub Actions\n\n```yaml\nname: Cross-Platform Build\n\non: [push, pull_request]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n\n      - name: Install Rust\n        uses: dtolnay/rust-toolchain@stable\n\n      - name: Install xcargo\n        run: cargo install xcargo\n\n      - name: Build for all targets\n        run: xcargo build --all\n```\n\n### GitLab CI\n\n```yaml\nbuild:\n  image: rust:latest\n  script:\n    - cargo install xcargo\n    - xcargo build --all\n  artifacts:\n    paths:\n      - target/*/release/*\n```\n\n## 🎨 Beautiful Output\n\nxcargo provides helpful, colored output with tips and hints:\n\n```\n✨ xcargo Interactive Setup\nLet's configure cross-compilation for your project!\n\n✓ Detected host platform: aarch64-apple-darwin\n\n? Which targets do you want to build for?\n  ↑↓ to navigate, Space to select, Enter to confirm\n  [ ] Linux x86_64\n  [✓] Windows x86_64 (GNU)\n  [✓] macOS ARM64 (M1/M2)\n\n✓ Configuration created successfully!\n\n📋 Configuration Summary\n────────────────────────\nTargets: x86_64-pc-windows-gnu, aarch64-apple-darwin\nParallel builds: enabled\nBuild cache: enabled\nContainer strategy: target.os != host.os\n\n💡 Tip: Run 'xcargo build' to build for your host platform\n💡 Tip: Run 'xcargo build --all' to build for all configured targets\n```\n\n## 📊 Status\n\n**Current Version:** 0.2.0\n\n✅ **Working Features:**\n- Target detection and validation\n- Toolchain management via rustup\n- Basic cross-compilation\n- Configuration system (xcargo.toml)\n- Interactive TUI setup wizard\n- Beautiful colored output with tips\n- Self-building capability (xcargo builds itself!)\n- **Parallel target compilation** (2-3x speedup with `parallel = true`)\n- **Linker configuration** (automatic CARGO_TARGET_*_LINKER setup)\n- **Container builds** (Docker/Podman integration with `--features container`)\n- Smart error messages with platform-specific help\n- GitHub Actions CI/CD integration\n\n🚧 **Planned Features:**\n- **Bundled cross-compilation toolchains** - Zero-dependency builds without Docker (download minimal toolchains on-demand)\n- Pure Rust OCI runtime (youki integration) as optional feature\n- Native dependency management\n- Build caching improvements\n- Custom container image support\n\n## 🗺️ Roadmap\n\n### Phase 1: Core Cross-Compilation (v0.1-0.2) ✅\n- ✅ Target detection and validation\n- ✅ Toolchain management via rustup\n- ✅ Configuration system (xcargo.toml)\n- ✅ Interactive TUI setup wizard\n- ✅ Parallel builds for 2-3x speedup\n- ✅ Linker configuration\n- ✅ Container builds (Docker/Podman)\n- ✅ Binary signing (minisign)\n\n### Phase 2: Zero-Dependency Builds (v0.3) 🚧\n**Goal:** Make cross-compilation work out of the box with zero external dependencies.\n\n- [ ] **Bundled toolchain system**\n  - Download minimal cross-compilation toolchains on-demand (~20-50MB per target)\n  - Cache in `~/.xcargo/toolchains/`\n  - No Docker, no manual toolchain installation required\n  - Fallback to containers for complex targets\n- [ ] Build and host pre-compiled toolchains for tier 1 targets\n- [ ] Automatic toolchain updates\n\n**Trade-offs:**\n- ✅ Better UX: Just works, no setup needed\n- ✅ Smaller downloads: 20-50MB vs 500MB+ containers\n- ✅ Offline-friendly: Works after first download\n- ⚠️ More complexity: Need to build/maintain toolchains\n- ⚠️ Hosting costs: Bandwidth for toolchain downloads\n\n### Phase 3: Enhanced Security \u0026 Distribution (v0.4)\n**Platform-Specific Code Signing** 🎯\n\nCurrently, xcargo binaries are signed with **minisign** (free, cross-platform). For enhanced platform integration, we're considering:\n\n**macOS Code Signing:**\n- **What:** Sign with Apple Developer certificate, enable Gatekeeper\n- **Benefit:** Better macOS user experience, no \"unidentified developer\" warnings\n- **Cost:** $99/year Apple Developer Program\n- **Status:** Planned, pending community interest\n\n**Windows Authenticode:**\n- **What:** Sign with code signing certificate, satisfy SmartScreen\n- **Benefit:** Better Windows user experience, no security warnings\n- **Cost:** $100-500/year for certificate\n- **Status:** Planned, pending community interest\n\n**Want platform-specific signing?**\n- 👍 React to [#123](https://github.com/ibrahimcesar/xcargo/issues/123) if you want macOS signing\n- 👍 React to [#124](https://github.com/ibrahimcesar/xcargo/issues/124) if you want Windows signing\n- 💬 Share your use case in the issues\n\n\u003e **Note:** Platform signing requires paid certificates. We'll implement these features when there's sufficient community interest to justify the ongoing costs. Minisign signatures will always be provided as a free, cross-platform verification method.\n\n**Other v0.4 features:**\n- [ ] `xcargo sign` - Help users sign their own binaries\n- [ ] Native dependency detection and management\n- [ ] Advanced build caching\n- [ ] Build profiles and presets\n\n### Phase 4: Advanced Features (v0.5+)\n- [ ] youki integration (pure Rust OCI runtime)\n- [ ] Custom toolchain registry\n- [ ] Build reproducibility guarantees\n- [ ] SBOM (Software Bill of Materials) generation\n- [ ] Integration with cargo-dist\n- [ ] Plugin system for custom targets\n\n### Community-Driven Priorities\n\nWe prioritize features based on community feedback. Share your needs:\n- 🐛 [Report bugs](https://github.com/ibrahimcesar/xcargo/issues/new?template=bug_report.md)\n- 💡 [Request features](https://github.com/ibrahimcesar/xcargo/issues/new?template=feature_request.md)\n- 💬 [Join discussions](https://github.com/ibrahimcesar/xcargo/discussions)\n\n## 🆚 Comparison\n\n| Feature | xcargo | cross | cargo-zigbuild |\n|---------|--------|-------|----------------|\n| **Native-first** | ✅ | ❌ | ⚠️ Via Zig |\n| **Auto-install targets** | ✅ | ❌ | ❌ |\n| **Interactive setup** | ✅ | ❌ | ❌ |\n| **Parallel builds** | ✅ | ❌ | ❌ |\n| **Beautiful output** | ✅ | ⚠️ | ⚠️ |\n| **Configuration file** | ✅ | ✅ | ❌ |\n| **Container support** | ✅ | ✅ | ❌ |\n| **Zero config** | ✅ | ❌ | ⚠️ |\n\n## 🤝 Contributing\n\nContributions are welcome! This is an early-stage project with lots of opportunity to help.\n\n**Ways to contribute:**\n- 🐛 Report bugs and suggest features via [GitHub Issues](https://github.com/ibrahimcesar/xcargo/issues)\n- 💻 Submit pull requests for fixes or new features\n- 📝 Improve documentation\n- 🎯 Test on different platforms and targets\n- ⭐ Star the repo to show support!\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.\n\n## 📚 Documentation\n\n- [Full Documentation](https://ibrahimcesar.github.io/xcargo)\n- [API Documentation](https://docs.rs/xcargo)\n- [Configuration Reference](https://ibrahimcesar.github.io/xcargo/docs/reference/configuration)\n- [Target Guide](https://ibrahimcesar.github.io/xcargo/docs/guides/target-management)\n- [Container Security Guide](docs/guides/container-security.md) - 🔒 Best practices for secure builds\n\n## 🔒 Security\n\nxcargo is built with security in mind:\n\n- ✅ **Memory safe** - Written in Rust with zero unsafe code\n- ✅ **Input validation** - All inputs are validated and sanitized\n- ✅ **No shell execution** - Direct process execution prevents injection attacks\n- ✅ **Audited dependencies** - All dependencies are regularly scanned\n- ✅ **Security evaluation** - Comprehensive security review completed for v1.0.0\n\n**Security resources:**\n- [Security Policy](SECURITY.md) - Vulnerability reporting process\n- [Security Evaluation](.github/SECURITY_EVALUATION.md) - Detailed security analysis\n- [Container Security Guide](docs/guides/container-security.md) - Secure container builds\n\n**Report security issues:** security@xcargo.dev or via [GitHub Security Advisories](https://github.com/ibrahimcesar/xcargo/security/advisories)\n\n## 📝 License\n\n[MIT](./LICENSE) © Ibrahim Cesar\n\n## 🙏 Acknowledgments\n\nInspired by excellent tools in the Rust ecosystem:\n- [cross](https://github.com/cross-rs/cross) - Container-based cross-compilation\n- [cargo-zigbuild](https://github.com/rust-cross/cargo-zigbuild) - Zig linker approach\n- [rustup](https://rustup.rs/) - Rust toolchain management\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**xcargo** - *Cross-compilation, zero friction* 🎯\n\nMade with ❤️ by [Ibrahim Cesar](https://github.com/ibrahimcesar)\n\n[⭐ Star on GitHub](https://github.com/ibrahimcesar/xcargo) | [📦 View on crates.io](https://crates.io/crates/xcargo) | [📖 Read the Docs](https://ibrahimcesar.github.io/xcargo)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibrahimcesar%2Fxcargo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibrahimcesar%2Fxcargo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibrahimcesar%2Fxcargo/lists"}