| Crates.io | legalis-interop |
| lib.rs | legalis-interop |
| version | 0.1.3 |
| created_at | 2026-01-05 07:21:34.062561+00 |
| updated_at | 2026-01-21 03:59:24.437001+00 |
| description | Interoperability layer for legal DSL formats (Catala, Stipula, L4, Akoma Ntoso) |
| homepage | https://github.com/cool-japan/legalis |
| repository | https://github.com/cool-japan/legalis |
| max_upload_size | |
| id | 2023282 |
| size | 1,290,701 |
Interoperability layer for legal DSL formats.
legalis-interop enables Legalis-RS to import from and export to other legal DSL formats, making it a universal bridge between legal technology ecosystems.
use legalis_interop::{
CatalaParser, CatalaExporter,
StipulaParser, StipulaExporter,
L4Parser, L4Exporter,
AkomaNtosoParser, AkomaNtosoExporter,
ConversionReport,
};
use legalis_core::Statute;
// Import from Catala
let catala_source = std::fs::read_to_string("law.catala_en")?;
let parser = CatalaParser::new();
let (statute, report) = parser.parse(&catala_source)?;
println!("Conversion confidence: {}%", report.confidence);
// Export to L4
let exporter = L4Exporter::new();
let l4_output = exporter.export(&statute)?;
// Direct format-to-format conversion
use legalis_interop::convert;
let l4_output = convert(&catala_source, "catala", "l4")?;
# Import from external format
legalis import --from catala input.catala_en
# Export to external format
legalis convert input.legalis --from legalis --to l4
# Auto-detect format
legalis import input.stipula # Detected from extension
| Feature | Catala | Stipula | L4 | Akoma Ntoso |
|---|---|---|---|---|
| Import | ✓ | ✓ | ✓ | ✓ |
| Export | ✓ | ✓ | ✓ | ✓ |
| Metadata | ✓ | Partial | ✓ | ✓ |
| Conditions | ✓ | ✓ | ✓ | ✓ |
| Effects | ✓ | ✓ | ✓ | ✓ |
| Temporal | Partial | ✓ | Partial | ✓ |
Each conversion generates a report with:
MIT OR Apache-2.0