Rust compiler project for CA-Clipper/Harbour compatibility, with a practical executable C backend, modern CLI, and long-term xBase modernization focus.
Latest release | All releases | Documentation | Contributing
Harbour Rust is an independent, community-led, open source compiler project written in Rust and designed for compatibility with CA-Clipper and Harbour.
This repository is maintained as a public, non-commercial contribution to the software community. It is not affiliated with, endorsed by, or sponsored by the Harbour Project, xHarbour, CA-Clipper, or any trademark owner related to those names. Those names are used only to describe compatibility goals and historical context.
The project also has a personal origin: xBase was the maintainer's first serious programming environment and played an important role in his path as a developer. That background motivates the work, but the repository is intended to remain technically rigorous, community-oriented, and professionally documented.
- provide a modern Rust implementation for a historically important xBase language family;
- prioritize observable compatibility before internal elegance in early phases;
- keep the compiler architecture understandable, testable, and incrementally maintainable;
- build the project in public with documentation, tests, and governance fit for long-term collaboration.
The repository has completed phases 0 through 16 of its current roadmap through the 0.7.0-alpha release line. The current runtime-fidelity baseline adds small, oracle-backed Harbour runtime/library slices without claiming broad unmeasured API coverage.
Current highlights:
- parser, HIR, sema, runtime, IR, and the current executable C backend are implemented;
- procedural compatibility, arrays,
STATIC, memvars, codeblocks, and selected advanced preprocessor markers are available; - DBF/RDD groundwork is present;
- focused
hb_JsonDecode(), zlib-family, andhb_processRun()runtime slices, includinghb_ZCompressBound(),hb_gzCompress()destination-buffer writeback,hb_ZError()message mapping, and stdout capture forhb_processRun( cCommand, NIL, @cStdOut ), are covered by tests and documented limits; - CLI, regression harnesses, benchmarks, fuzz scaffolding, release workflows, and cross-platform CI validation are in place.
Near-term direction:
- continue runtime fidelity through the remaining
hb_gzCompress()andhb_processRun()surfaces only with new focused oracles; - deferred corridors: sockets and threading, because they require cross-platform IO and concurrency design before compatibility claims are useful.
- Latest pre-release: 0.7.0-alpha
- All releases: github.com/arcostasi/harbour-rust/releases
- Latest pre-release assets:
Start here:
- Roadmap
- Compatibility
- Contributing
- Governance
- Security
- Support
- Provenance and Copyright Policy
- Documentation Center
Technical guides:
cargo fmt --all
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace
cargo run -p harbour-rust-cli -- help
Harbour Rust is:
- open source;
- community-oriented;
- non-commercial as a project initiative;
- independently maintained;
- intended as a respectful technical contribution to a classic ecosystem.
Contributions are welcome, but all submitted material must be original or lawfully reusable. See PROVENANCE.md for the repository policy on originality, upstream references, translation, and third-party material.
- Use GitHub Issues for focused bugs, compatibility problems, and scoped work items.
- Use GitHub Discussions for questions, ideas, and broader design conversations when Discussions are enabled for the repository.
- Use pull requests for concrete, reviewable changes with tests and synchronized documentation updates.
The repository templates in .github/ are designed to support English and Portuguese contributors without changing the canonical policy language of the project.
This repository is distributed under the Apache License 2.0.
