Releases: germanicdev/germanic
Releases · germanicdev/germanic
v0.2.3
Full Changelog: v0.2.2...v0.2.3
v0.2.2
Full Changelog: v0.2.1...v0.2.2
v0.2.0 — Unified Validation Pipeline
What Changed
Unified Validation Pipeline
- CLI
--schema practicenow routes through Dynamic Mode - Multi-error reporting: ALL validation errors shown at once
- Size limits: 1MB max string, 10k max array elements (DoS protection)
- Pre-validation for library API with same limits
Data Fix
firma-mustertech.jsoncorrected (field names match Unternehmen schema)
Agent Integration
- SKILL.md updated: Decision Tree with workspace search, File Recovery guidance
- Tested with OpenClaw agent: 5/7 tests passed first try
Build
build.rsauto-copies practice schema (no more manual sync)- Public API doc-coverage >80%
Security
- String/array size limits prevent memory exhaustion attacks
- Binary format + validation = structural injection immune
Full Changelog: v0.1.1...v0.2.0
v0.1.1 — Maintenance Release
Changes
Dependencies
- rmcp: 0.8.5 → 0.15.0 (MCP SDK, no breaking changes)
- All workspace dependencies updated to latest
OpenClaw Integration
- SKILL.md reformatted for OpenClaw-compatible frontmatter
- Single-line JSON metadata (required by OpenClaw parser)
- Added install block for cargo install germanic
Documentation
- Added Agent Integration section to README (OpenClaw + MCP)
- Updated crate description on docs.rs
Testing
- 109 tests passing, zero warnings
- MCP server verified with rmcp 0.15.0
v0.1.0 — Type system for the Mensch ↔ Maschine interface
v0.1.0 — Type system for the Mensch ↔ Maschine interface
Everywhere AI touches data, a contract is missing. GERMANIC is that contract.
cargo install germanic
What is GERMANIC?
A schema-validated binary compiler for AI agents. JSON in, validated .grm binary out. If the data is incomplete, it won't compile.
Built in Rust. Zero-copy FlatBuffers. No runtime dependencies.
Highlights
Schema-Validated Compilation
- JSON → schema validation → FlatBuffer →
.grmbinary - Required fields, type checking, nested validation, empty string detection
- All errors collected at once — not just the first
No Rust Knowledge Required
germanic init --from example.jsoninfers a schema from any JSONgermanic compile --schema my.schema.json --input data.jsoncompiles it- Edit the
.schema.jsonto mark required fields — that's it
JSON Schema Draft 7 Compatible
- Accepts both GERMANIC
.schema.jsonand standard JSON Schema Draft 7 - Auto-detection — no flags needed
MCP Server
- 6 tools: compile, validate, inspect, schemas, init, convert
- Built on rmcp 0.8, stdio transport
- Behind
mcpfeature flag:cargo install germanic --features mcp
42 Domain Schemas
- Healthcare, dining, trades, education, real estate, legal, public services, mobility, business, associations, agriculture
- German + English translations
- All with fictional example data
Contract Proof
- 10 test scenarios proving what GERMANIC catches vs HTML/JSON-LD/JSON Schema
- Run it yourself:
cargo test --test vertragsbeweis -- --nocapture
Install
cargo install germanicQuick Start
echo '{"name": "Dr. Sonnenschein", "phone": "+49 30 1234567"}' > practice.json
germanic init --from practice.json --schema-id health.practice.v1
germanic compile --schema practice.schema.json --input practice.json --output practice.grm
germanic inspect practice.grmLinks
- 📖 [Documentation](https://docs.rs/germanic)
- 🦀 [crates.io](https://crates.io/crates/germanic)
- 📋 [README](https://github.com/germanicdev/germanic#readme)
Technical Details
- Rust Edition: 2024
- MSRV: 1.85
- License: MIT OR Apache-2.0
- Tests: 101 (without MCP) / 109 (with MCP)
- Dependencies: Zero external runtime deps for core functionality
- flatc: Not required — FlatBuffer bindings are pre-generated