Advanced
Rust Setup
How to set up and build Rust modules for LocalDNS.wtf development.
Rust Setup Guide
Prerequisites
-
Install Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -
Verify installation
rustc --version cargo --version
Building Rust Modules
Build all Rust crates
cargo build --releaseBuild specific crate
cd crates/localdns-hosts
cargo build --releaseBuilding FFI Bindings
The Rust modules are exposed to Node.js via napi-rs:
cd packages/rust-ffi
pnpm install
pnpm buildThis generates native bindings, TypeScript definitions, and a Node.js module.
Development Workflow
-
Make changes to Rust code
cd crates/localdns-hosts # Edit src/lib.rs cargo build -
Rebuild FFI bindings
cd packages/rust-ffi pnpm build -
Test in TypeScript
cd packages/core pnpm build pnpm test
Cross-Platform Building
# macOS (Intel)
cargo build --release --target x86_64-apple-darwin
# macOS (Apple Silicon)
cargo build --release --target aarch64-apple-darwin
# Linux
cargo build --release --target x86_64-unknown-linux-gnuTroubleshooting
Build fails with "napi-build not found"
cd packages/rust-ffi
pnpm install @napi-rs/cliTypeScript can't find module
Make sure you've built the Rust FFI package:
cd packages/rust-ffi
pnpm buildPermission errors on Unix
The Rust implementation still requires appropriate permissions for /etc/hosts. Use sudo when needed.