A Human-Friendly Data Serialization Format
Official parser implementations in various programming languages. Each implementation is maintained in its own repository with complete documentation and examples.
Repository: https://github.com/uplang/go
| π API Documentation | π§ͺ Test Status | π Quick Start |
The reference implementation includes both the parser library and command-line tools.
Features:
up)Installation:
go get github.com/uplang/go
Repository: https://github.com/uplang/js
| π API Documentation | π§ͺ Test Status | π Quick Start |
Pure JavaScript/TypeScript implementation for Node.js and browsers.
Features:
Installation:
npm install @uplang/up
Repository: https://github.com/uplang/py
| π API Documentation | π§ͺ Test Status | π Quick Start |
Python implementation with native types support.
Features:
Installation:
pip install up-lang
Repository: https://github.com/uplang/rust
| π API Documentation | π§ͺ Test Status | π Quick Start |
High-performance Rust implementation with zero-copy parsing.
Features:
Installation:
[dependencies]
up-lang = "1.0"
Repository: https://github.com/uplang/java
| π API Documentation | π§ͺ Test Status | π Quick Start |
Modern Java implementation using records and sealed classes (Java 21+).
Status: π§ In Progress
Repository: https://github.com/uplang/c
| π API Documentation | π§ͺ Test Status | π Quick Start |
C implementation for maximum portability and embeddability.
Features:
Installation:
make && sudo make install
All implementations support the core UP syntax. Advanced features vary by implementation:
| Feature | Go | JS/TS | Python | Rust | C |
|---|---|---|---|---|---|
| Core Parser | β | β | β | β | β |
| Type Annotations | β | β | β | β | β |
| Blocks & Lists | β | β | β | β | β |
| Multiline Strings | β | β | β | β | β |
| Dedenting | β | β | β | β | β |
| Tables | β | β | β | β | β |
| Templates | β | π§ | π§ | π§ | β |
| Schema Validation | π§ | β | β | β | β |
| CLI Tool | β | β | β | β | β |
| Language | Repository | Package/Install | Documentation | CI Status |
|---|---|---|---|---|
| Go | uplang/go | go get github.com/uplang/go |
pkg.go.dev | Tests |
| JavaScript | uplang/js | npm install @uplang/up |
TypeDoc | Tests |
| Python | uplang/py | pip install up-lang |
ReadTheDocs | Tests |
| Rust | uplang/rust | cargo add up-lang |
docs.rs | Tests |
| Java | uplang/java | Maven/Gradle | JavaDoc | Tests |
| C | uplang/c | make install |
Doxygen | Tests |
Each implementation has its own contribution guidelines. Please see the respective repository for details.
Want to implement UP in another language? Great! Hereβs what you need:
examples/Requirements:
Contact us via GitHub Discussions to have your implementation listed here!
For implementation-specific issues, please file issues in the respective repository:
For specification issues or general questions: https://github.com/uplang/spec/issues
Each implementation has its own license (typically MIT). See individual repositories for details.