138 releases

new 0.1.160 Dec 5, 2025
0.1.159 Nov 23, 2025
0.1.157 Oct 29, 2025
0.1.150 Jul 27, 2025
0.1.36 Nov 12, 2024

#90 in Procedural macros

Download history 817/week @ 2025-08-15 957/week @ 2025-08-22 1209/week @ 2025-08-29 995/week @ 2025-09-05 910/week @ 2025-09-12 870/week @ 2025-09-19 685/week @ 2025-09-26 754/week @ 2025-10-03 697/week @ 2025-10-10 888/week @ 2025-10-17 2107/week @ 2025-10-24 2195/week @ 2025-10-31 2157/week @ 2025-11-07 2082/week @ 2025-11-14 4185/week @ 2025-11-21 3720/week @ 2025-11-28

12,617 downloads per month
Used in 4 crates

MIT/Apache

1.5MB
34K SLoC

rusteron-code-gen

rusteron-code-gen is an internal code generation tool used within the Rusteron project.
It automates the creation of Rust bindings from Aeron’s C APIs, reducing manual effort and ensuring consistent wrapper interfaces across the rusteron-* crates.


Purpose

Aeron's C APIs follow predictable structural patterns. This tool parses those C headers and uses templates to emit Rust wrappers around the raw FFI layer. It is primarily used to generate:

  • rusteron-client
  • rusteron-archive
  • rusteron-media-driver

By automating this step, we reduce maintenance cost and improve reliability when tracking upstream changes in Aeron.

Note: This crate is not intended for standalone use outside the Rusteron project.


Features

  • Automated Code Generation – Converts Aeron C headers into Rust-safe APIs.
  • Pattern-Based Templating – Leverages Aeron’s consistent structure to minimize boilerplate.
  • Integration-Friendly – Output is directly used in production modules of the Rusteron stack.

Usage

This crate is used via internal tooling (e.g. in just scripts or CI pipelines) and is not meant to be added as a dependency in consumer projects.


Safety Considerations

Generated code includes unsafe blocks where necessary to interface with Aeron’s low-level constructs.
While much of the generation is automated, occasional manual review and patching may be required to ensure correctness, especially when Aeron introduces API changes.

Dependencies

~2.6–4MB
~76K SLoC