| Crates.io | ferros-core |
| lib.rs | ferros-core |
| version | 0.0.0 |
| created_at | 2025-11-13 20:20:01.319384+00 |
| updated_at | 2025-11-13 20:20:01.319384+00 |
| description | Low-level debugging primitives and process control for Ferros. |
| homepage | |
| repository | https://github.com/jamallyons/ferros |
| max_upload_size | |
| id | 1931821 |
| size | 6,548 |
A Rust-native debugger built from the same element as Rust itself.
Ferros (from ferrum — Latin for iron) is a next-generation debugger designed specifically for the Rust programming language.
Unlike traditional debuggers that retrofit C-style semantics onto Rust programs, Ferros is built from the ground up to understand Rust's unique memory model, lifetimes, ownership system, and mid-level intermediate representation (MIR).
Ferros merges symbolic debugging and interpreted execution in a single hybrid architecture — capable of inspecting compiled binaries and running MIR-level simulations for deep program analysis.
Built from the same element as Rust.
A debugger that speaks Rust's language.
To give Rust developers a first-class, language-native debugging experience — fast, intuitive, and designed for Rust's safety guarantees.
Ferros aims to become the Rust ecosystem's standard debugging platform, complementing cargo and integrating cleanly with editors, IDEs, and build tools.
| Feature | Description |
|---|---|
| Rust-Native Inspection | Understands ownership, borrows, lifetimes, and async tasks directly |
| MIR Integration | Debug at the mid-level IR to analyze compiler-accurate control flow |
| Hybrid Execution Engine | Combine symbolic simulation with native process control for precise debugging |
| Zero-Cost Breakpoints | Lightweight traps integrated with Rust's runtime model |
| Memory Safety Visualization | Visualize move semantics, borrows, and drops in real time |
| Cross-Platform Support | Linux (ptrace), macOS (Mach ports), and Windows (WinDbg APIs) |
| Cargo Integration | Seamless cargo ferros workflow for launching and inspecting projects |
Note: Ferros is currently in active development. See ROADMAP.md for current status.
Ferros is structured as a workspace of multiple crates, each with a specific responsibility:
ferros/
├── crates/
│ ├── ferros/ # Command-line interface
│ ├── ferros-core/ # Low-level debugging primitives & process control
│ ├── ferros-mir/ # MIR integration & analysis
│ ├── ferros-ui/ # Optional TUI/GUI for visualization
│ ├── ferros-protocol/ # Communication layer
│ └── ferros-utils/ # Shared utilities & helpers
📖 Learn more: See ARCHITECTURE.md for detailed architecture documentation.
Coming Soon! Ferros is currently in early development. Check back soon for installation instructions.
Once available, you'll be able to:
# Install via cargo
cargo install ferros
# Debug your Rust project
cargo ferros run
# Attach to a running process
ferros attach <pid>
We welcome contributions! Ferros is built with ❤️ by the Rust community.
📖 Getting Started: Check out CONTRIBUTING.md for:
Looking for your first contribution? Check out issues labeled good first issue!
Licensed under the Apache License, Version 2.0.
Ferros draws inspiration from:
gdb, lldb, and rrprobe-rs and miriFerros — built from the same element as Rust.