Object Record Table - a CSV like structured data format with native object and array support.
Project description
Object Record Table (ORT)
ORT is a CSV-like structured data format with native support for objects and arrays.
Unlike inefficient human-readable data structures, ORT efficiently represents data, making it ideal for large language model (LLM) token optimization and structured data interchange.
[!TIP] ORT was inspired by Token-Oriented Object Notation (TOON) and was created to contribute to the open-source ecosystem and the advancement of LLMs.
Thank you, TOON.
Table of Contents
Why ORT
Standard JSON and YAML prioritize human readability, but their structural characteristics introduce significant computational overhead when passing data to large language models. ORT addresses this by optimizing data representation for token efficiency.
JSON
{
"users": [
{
"id": 1,
"profile": {
"name": "John Doe",
"age": 30,
"address": {
"city": "New York",
"country": "USA"
}
}
},
{
"id": 2,
"profile": {
"name": "Jane Smith",
"age": 25,
"address": {
"city": "London",
"country": "UK"
}
}
}
]
}
398 Characters / 118 Tokens
Compact-JSON
{"users":[{"id":1,"profile":{"name":"John Doe","age":30,"address":{"city":"New York","country":"USA"}}},{"id":2,"profile":{"name":"Jane Smith","age":25,"address":{"city":"London","country":"UK"}}}]}
198 Characters / 58 Tokens
ORT
users:id,profile(name,age,address(city,country)):
1,(John Doe,30,(New York,USA))
2,(Jane Smith,25,(London,UK))
110 Characters / 35 Tokens
When Not to Use ORT
ORT is not always the optimal choice. Consider using JSON in the following scenarios:
- Non-uniform data structures: ORT operates efficiently and reliably with uniform data structures. For heterogeneous data, JSON is more efficient and prevents data loss.
- Direct application data files: ORT is not optimized for direct input/output operations. Since ORT specializes in data transformation and processing, using JSON for application data files offers better compatibility and stability.
Command-Line Tools
The Rust implementation provides CLI utilities for converting between ORT and JSON formats:
Installation
cargo install ort-rs
Usage
ort2json <input_file>
json2ort <input_file>
# Or with output file specification
ort2json <input_file> -o <output_file>
json2ort <input_file> -o <output_file>
Installation & Usage
PLAYGROUND
Rust Library
Add to your Cargo.toml:
[dependencies]
ort-rs = "1.1.0"
TypeScript Library
npm i ort-ts
Python Library
pip install ort-python
Package Links
- Crates.io: https://crates.io/crates/ort-rs
- PyPI: https://pypi.org/project/ort-python/
- npm: https://www.npmjs.com/package/ort-ts
Specification
To view the ORT specification sheet, go here.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ort_python-1.1.0.tar.gz.
File metadata
- Download URL: ort_python-1.1.0.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fe1a0e20c89b3df03c5572873793f89172554a8d38784f1a3d3fec2b54ce4be
|
|
| MD5 |
4425b965d07e32ce9c85c526b223acf3
|
|
| BLAKE2b-256 |
62732c71237ce97119bbb68a4f609a4ee30e1c277593d83d059ad547aeaa9bdd
|
File details
Details for the file ort_python-1.1.0-py3-none-any.whl.
File metadata
- Download URL: ort_python-1.1.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e41a7df4fc44568c6bb3b8636a462cb4ccee0c3954d401166870f28f439c3df0
|
|
| MD5 |
5e2a15a1deedac624a7ffab4bc932d0a
|
|
| BLAKE2b-256 |
04704c0c2a02e4a92466b52a6138251da5d920fa5cdc0746abaf0c2b465a25cf
|