Skip to main content
This guide covers building RTK from source, including prerequisites, development builds, release builds, and cross-compilation.

Prerequisites

Rust Toolchain

RTK requires Rust 1.70 or later (2021 edition).
1

Install Rust

Install Rust using rustup:
2

Verify installation

Confirm Rust and Cargo are installed:
3

Update toolchain (optional)

If you already have Rust, update to the latest version:

System Dependencies

RTK uses rusqlite with the bundled feature, so no external SQLite installation is required. Platform-specific requirements:
  • macOS: Xcode Command Line Tools
  • Linux: gcc, pkg-config
  • Windows: MSVC or GNU toolchain via rustup

Development Builds

Quick Build

Build RTK for local development:

Development Build Profile

Debug builds include:
  • Debug symbols for debugging
  • No optimizations (fast compilation)
  • Runtime assertions enabled
  • Larger binary size (~10-15 MB)
Use for: Active development, debugging, testing

Running Without Installing

Test RTK without installing:

Local Installation

Install the development build to ~/.cargo/bin/:
Local installs override crates.io versions. Uninstall with cargo uninstall rtk.

Release Builds

Optimized Build

Build RTK with full optimizations:

Release Profile Configuration

From Cargo.toml (lines 34-39):
Benefits:
  • Binary size: ~4.1 MB (stripped)
  • Startup time: <10ms
  • Memory: 2-5 MB typical usage
  • Optimization: Maximum runtime performance
Release builds take significantly longer to compile (2-5 minutes vs 30 seconds for debug).

Build Commands Reference

From CLAUDE.md

Quality Checks

Run quality gates before committing:
If you have RTK installed, prefer rtk cargo <cmd> for token-optimized output (60-90% reduction).

Cross-Compilation

Linux x86_64 to ARM64

macOS Universal Binary

Windows from Linux (via MinGW)

Package Building

DEB Package (Debian/Ubuntu)

1

Install cargo-deb

2

Build DEB package

Package created at: target/debian/rtk_<version>_<arch>.deb
3

Install DEB package

RPM Package (Fedora/RHEL)

1

Install cargo-generate-rpm

2

Build release binary first

3

Generate RPM package

Package created at: target/generate-rpm/rtk-<version>.<arch>.rpm
4

Install RPM package

Package configurations are defined in Cargo.toml under [package.metadata.deb] and [package.metadata.generate-rpm].

Build Performance Tips

Speed Up Compilation

  1. Use a faster linker:
  2. Incremental compilation (default in debug mode):
  3. Parallel jobs:

Reduce Binary Size

The release profile already optimizes for size. Additional options:
Don’t optimize for size in production! The default opt-level = 3 provides the best runtime performance (<10ms startup).

Troubleshooting

Compilation Errors

Rust version too old:
Missing system dependencies (Linux):
Linker errors (Windows):

Clean Builds

Remove build artifacts and start fresh:

Verify Binary

Check the built binary:

CI/CD Builds

RTK uses GitHub Actions for automated builds:
  • Platforms: macOS, Linux (x86_64 + ARM64), Windows
  • Workflow: .github/workflows/release.yml
  • Artifacts: Binaries, DEB/RPM packages, checksums
  • Triggers: Version tags (v*)
View the workflow for multi-platform build configuration.

Next Steps