"The best programming language is useless if you can't install it. Make installation trivial, and adoption follows. Make it hard, and even great technology dies in obscurity." - Noah Gift
You'll need Rust installed on your system:
# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh# Clone the Ruchy compiler repository
git clone https://github.com/paiml/ruchy.git
cd ruchy
# Build the compiler
cargo build --release
# After building, the compiled binary is located at:
# target/release/ruchy# Copy to a location in your PATH (Unix-like systems)
sudo cp target/release/ruchy /usr/local/bin/
# Or add to PATH
export PATH="$PWD/target/release:$PATH"Once built, you can use the Ruchy compiler to transpile .ruchy files to Rust:
# Transpile a Ruchy file to Rust
ruchy transpile input.ruchy -o output.rs
# Then compile the Rust code
rustc output.rs -o program
./program# In the ruchy directory
cargo test# Start the REPL
cargo run --bin ruchy replCurrently, there is no official IDE support for Ruchy. However:
- Syntax Highlighting: You can use Rust syntax highlighting as a temporary solution since Ruchy syntax is similar
- This Book: The Ruchy book (this documentation) includes custom syntax highlighting for viewing Ruchy code
The following installation methods are planned but not yet available:
- Official binary releases
- Package manager support (Homebrew, apt, etc.)
- One-line installers
- VS Code extension
- Language server protocol (LSP) implementation
- GitHub Issues: https://github.com/paiml/ruchy/issues
- Source Code: https://github.com/paiml/ruchy
- No Official Releases: There are no official release binaries yet
- No Package Managers: Ruchy is not available through any package manager
- Build from Source: Currently, building from source is the only way to use Ruchy
- Experimental: The language is experimental and the syntax/features may change
After building from source:
# Check if ruchy is accessible
ruchy --help
# Try transpiling a simple program
echo 'fun main() { println("Hello from Ruchy!") }' > test.ruchy
ruchy transpile test.ruchy -o test.rs
rustc test.rs -o test
./testIf you encounter issues, please report them at the GitHub repository.