Biohazrd is a framework for creating binding generators for C and C++ libraries. It aims to lower the amount of ongoing boilerplate maintenance required to use native libraries from .NET as well as allow direct interoperation with C++ libraries without a C translation later.
Biohazrd is still under heavy development, documentation and API stability are non-existent. If you're interested in this project, consider sponsoring development.
Interested in seeing it used? Check out InfectedImGui or InfectedPhysX.
We also have peliminary documentation available in the docs folder.
This project is licensed under the MIT License. See the license file for details.
Additionally, this project has some third-party dependencies. See the third-party notice listing for details.
For the brave, here's a quick overview of the individual components of this repository:
Project | Description |
---|---|
Biohazrd |
The core of Biohazrd. This is the code is primarily responsible for parsing the Cursor tree of libclang` and translating it into a simplified model that's easier to work with. |
Biohazrd.Transformation |
Infrastructure for transforming the immutable object model output by the core. (As well as a some common transformations you might need) |
Biohazrd.OutputGeneration |
Infrastructure for emitting code based on the Biohazrd object model. |
Biohazrd.CSharp |
Transformations, output generation, and other infrastructure for supporting emitting a C# interop layer. |