๐ณ Tree I/O
June 26, 2026 ยท View on GitHub
Uniform API to read/write heterogeneous tree data models - cross-format, cross-library.
tree-io [tri-yo] provides a consistent and lightweight abstraction for working with heterogeneous hierarchical data structures. It is format-agnostic (JSON, YAML, CBOR, โฆ) and library-agnostic, allowing you to read, manipulate, and write trees uniformly without depending on a specific parser or generator.
โจ Features
- ๐ณ Uniform Tree Processing - handle any hierarchical and heterogeneous data structure consistently across formats and libraries
- ๐ Library-agnostic API for tree data processing
- TreeParser - Data ingestion from heterogeneous formats into structural event streams
- TreeTraverser - Extraction of structural event streams from heterogeneous in-memory instances
- TreeEmitter - Stateless, stack-free generation of tree-like structures
- TreeComposer - Materialization of structural event streams into in-memory instances
- ๐๏ธ Multi-format support
- ๐ ๏ธ Extensible model for adding new formats and libraries
๐๏ธ Use Cases
- Uniform processing of heterogeneous tree models
- Building library-agnostic processors and pipelines
- Manipulating heterogeneous hierarchical data in a consistent way
๐ Implementations of Tree I/O API
| Artifact | Version | Javadoc |
|---|---|---|
| Tree I/O API | ||
| Jakarta JSON API | ||
| Jackson 2 Tree Model | ||
| CBOR |
๐ฆ Artifacts
<!-- Core API: uniform interfaces implemented by all adapters -->
<dependency>
<groupId>com.apicatalog</groupId>
<artifactId>tree-io-api</artifactId>
<version>${tree-io.version}</version>
</dependency>
<!-- Available adapters: include the one(s) matching your use case -->
<!-- Jakarta JSON adapter -->
<dependency>
<groupId>com.apicatalog</groupId>
<artifactId>tree-io-jakarta</artifactId>
<version>${tree-io.version}</version>
</dependency>
<!-- Jackson 2 adapter -->
<dependency>
<groupId>com.apicatalog</groupId>
<artifactId>tree-io-jackson2</artifactId>
<version>${tree-io.version}</version>
</dependency>
<!-- CBOR adapter -->
<dependency>
<groupId>com.apicatalog</groupId>
<artifactId>tree-io-cbor</artifactId>
<version>${tree-io.version}</version>
</dependency>
๐ค Contributing
Contributions are welcome! Please submit a pull request.
Building
Fork and clone the repository, then build with Maven:
> cd tree-io
> mvn package
๐ผ Commercial Support
Commercial support and consulting are available.
For inquiries, please contact: filip26@gmail.com