Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Rosetta Bindings

One C++26 reflection engine — bindings for every language, generated, not hand-written.

Rosetta C++26 Bindings License: MIT


This organization hosts Rosetta — a C++26 reflection-based, multi-language binding generator — together with the libraries that use it to expose existing C++ codebases to other languages without modifying a single line of their source.

The idea is always the same: point Rosetta at unmodified C++ headers via a small manifest.json, run one tool, and get a ready-to-build binding project per target language (Python, Node, WebAssembly, TypeScript, REST, Qt, Julia, …). C++26 reflection (P2996) does the discovery; the consumer libraries in this org are concrete applications of that engine to real-world codebases.

Repositories

Core

Repository Description
rosetta The reflection engine and code generator. Discovers public fields, methods, constructors, enums, inheritance and free functions from unmodified headers, then emits self-contained binding projects across 24 generator backends (pybind11 / nanobind, N-API, Emscripten/embind, Qt, QML, REST, OpenAPI, Julia, TypeScript, C#, Java, JSON, Markdown, HTML, ParaView, …). Opt-in annotations (doc, range, readonly, combobox) enrich the output — inline or out-of-line — without intruding on your code.

Libraries built on Rosetta

Repository Wraps Description
pmp-rosetta PMP Library Multi-language bindings for the Polygon Mesh Processing library. From a single manifest.json, generates ready-to-build bindings for SurfaceMesh and the remeshing, smoothing, subdivision, decimation and curvature algorithms — without touching PMP's source.

More consumer libraries follow the same pattern: add the target codebase as an external dependency, describe what to expose in a manifest.json, and let Rosetta generate the bindings.

Target compiler doesn't support reflection yet?

Generate the expanded bindings once on a host with a C++26 / P2996 compiler — e.g. the Bloomberg clang-p2996 fork — then ship and build the generated sources anywhere with a stock toolchain (plain Clang / GCC / MSVC, or a stock emsdk for WebAssembly). No reflection is required on the target. See the expanded backends in the Rosetta README.

License

Rosetta is released under the MIT license. Individual consumer libraries carry the license of their respective wrapped projects where applicable — see each repository for details.

Author

xaliphostes

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors