Thanks for being interested in contributing! This crate provides the C-compatible FFI layer for RustyJavaC, making the compiler accessible from Java via Panama FFM or JNA.
- Rust 1.85+ (we use the 2024 edition)
git clone https://github.com/CoffeePopStudio/RustyJavaC-Native.git
cd RustyJavaC-Native
cargo buildFor release:
cargo build --release├── Cargo.toml # cdylib target, git dependency on javac-compiler
├── src/
│ └── lib.rs # extern "C" FFI exports
├── rustyjavac.h # C header reference for consumers
├── .gitignore
├── README.md
└── LICENSE
- Fork and clone the repo.
- Create a branch from
main. - Make your changes.
- Run
cargo buildto make sure everything compiles. - Run
cargo clippyto lint. - Open a pull request against
main.
- Richer error reporting — Currently errors go to stderr. A callback or structured error output would help Java consumers.
- In-memory compilation — Accept source as strings rather than file paths.
- Streaming output — Return
.classbytes directly instead of writing to disk. - Classpath support — Expose the classpath parameter via FFI.
- Cross-platform CI — Build and test on Windows, Linux, and macOS.
We follow Conventional Commits. Keep subject lines short and lowercase.
feat: add in-memory compilation support
fix: handle null output_dir correctly
By contributing, you agree that your contributions will be licensed under the MIT License, same as the rest of the project.