Zero-copy serialization with schema-driven code generation for Java's FFM API.
For applications using generated flyweights:
dependencies {
implementation("express.mvp.myra.codec:runtime:0.1.0")
}For code generation tooling:
dependencies {
implementation("express.mvp.myra.codec:codegen:0.1.0")
}Requires Java 24+ with FFM enabled:
java --enable-native-access=ALL-UNNAMED -jar your-app.jarDefine a schema in .myra.yml:
namespace: "com.example"
messages:
- name: "Order"
fields:
- { tag: 1, name: "id", type: "int64" }
- { tag: 2, name: "symbol", type: "string" }Generate and use:
./gradlew :codegen:run --args "-s order.myra.yml -o src/generated -l order.myra.lock"var builder = new OrderBuilder();
builder.wrap(segment).id(123L).symbol("AAPL");
var flyweight = new OrderFlyweight();
flyweight.wrap(segment, 0);
long id = flyweight.id(); // Zero-copy read📚 User Guide — Full documentation
🚀 Getting Started — Ecosystem tutorial
📖 API Reference — Javadoc
📋 Schema Specification — .myra.yml format
See CONTRIBUTING.md for build instructions and PR process.
Apache 2.0 — See LICENSE