Parser for the Bring file format - modern configuration and package management
Project description
Bring File Format Documentation
📌 Introduction
Bring is a modern, human-readable file format designed for two primary purposes:
- Package Management for EasierLang – Used to define and import packages from the Daftyon Hub in the upcoming EasierLang programming language.
- Universal Data Exchange – A powerful configuration and data exchange format that combines the best of JSON, YAML, and XML while solving their key issues.
Future versions (v2) will expand Bring's capabilities to include payment processing and secure financial transactions, making it a unified solution for both package management and structured data exchange.
✨ Why Bring?
| Feature | JSON | YAML | XML | Bring |
|---|---|---|---|---|
| Human-Readable | ❌ (No comments) | ✅ | ❌ (Too verbose) | ✅ |
| Supports Comments | ❌ | ✅ | ✅ | ✅ |
| Schema Validation | ❌ (External) | ❌ | ✅ (XSD) | ✅ (Built-in) |
| Attributes/Metadata | ❌ | ❌ | ✅ (<tag attr="">) |
✅ (@attr=value) |
| No Ambiguity | ✅ | ❌ (yes vs true) |
✅ | ✅ |
| Multi-Line Strings | ❌ (Escaped) | ✅ | ❌ | ✅ |
| Secure by Default | ✅ | ❌ (Code execution risk) | ✅ | ✅ |
📜 Bring Syntax
1. Key-Value Pairs
# Basic key-value
name = "Bring"
version = 1.0
enabled = true
2. Objects (Nested Data)
user = {
id = 1
name = "Alice" @required=true
email = "alice@example.com" @format="email"
}
3. Arrays (Lists)
features = ["logging", "caching", "auth"]
4. Attributes (Metadata)
port = 8080 @min=1 @max=65535
5. Schemas (Validation Rules)
schema Product {
id = number @min=1
name = string @maxLength=100
price = float @min=0
}
6. Multi-Line Strings
description = """
Bring is a modern file format
combining JSON, YAML, and XML.
"""
🚀 Use Cases
1. EasierLang Package Management
# Import packages from Daftyon Hub
package = {
name = "http-server"
version = "2.3.0"
dependencies = ["json-parser", "logger"]
}
2. Configuration Files
# Server config
server = {
host = "0.0.0.0"
port = 3000
ssl = {
enabled = true
cert = "/path/to/cert.pem"
}
}
3. Future: Payment Transactions (v2)
# Hypothetical payment example
transaction = {
id = "txn_123" @unique=true
amount = 100.50 @currency="USD"
receiver = "merchant@example.com" @verified=true
timestamp = "2025-01-01T12:00:00Z" @format="ISO8601"
}
🔧 How to Use
1. Install the Parser
pip install bring-parser # (Coming soon)
2. Parse a Bring File (Python)
from bring_parser import parse_bring_file
data = parse_bring_file("config.bring")
print(data["server"]["port"]) # 3000
3. CLI Usage
bring parse config.bring --format=json
📌 Key Advantages Over JSON/YAML/XML
✅ No Ambiguity – Strict typing (no yes/no vs true/false like YAML)
✅ Built-in Schema Validation – No need for external schemas
✅ Supports Comments – Unlike JSON
✅ Cleaner Than XML – No closing tags or < > clutter
✅ Secure – No arbitrary code execution (unlike YAML)
✅ Future-Ready – Designed for payments, APIs, and more
📅 Future Roadmap
- v1.0 – Stable release for package management & configs
- v1.5 – Schema validation improvements
- v2.0 – Payment processing & financial transactions
📂 Example Files
🎯 Conclusion
Bring is the ultimate file format for:
- EasierLang package management
- Clean, readable configs
- Future payment systems
It combines JSON’s simplicity, YAML’s readability, and XML’s structure while fixing their flaws.
🚀 Get started today!
License: MIT
Author: Daftyon Team
Repository: github.com/daftyon/bring
Project details
Release history Release notifications | RSS feed
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 bring_parser-1.0.0.tar.gz.
File metadata
- Download URL: bring_parser-1.0.0.tar.gz
- Upload date:
- Size: 50.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f8a73d8d19134ff23eec04b045e798e87eb4507caf6c8e52a9c3c367b4543bc
|
|
| MD5 |
d5e8f6396edf8939b6c7e3da01c8e643
|
|
| BLAKE2b-256 |
96d2640cd61da142866dc7de414c97cf4082c24cae84bc2992e49e02f4a21c80
|
File details
Details for the file bring_parser-1.0.0-py3-none-any.whl.
File metadata
- Download URL: bring_parser-1.0.0-py3-none-any.whl
- Upload date:
- Size: 28.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97b215fd3ce7c9348b268fbd3e923806362f229ff3ae378fa6a466e3e04dcc71
|
|
| MD5 |
97f2f3e90a493be8d724b9658c6baf08
|
|
| BLAKE2b-256 |
4cd6d84055d922103f38510a269e0200bb4dda3170a084d891549ab8ec6c0127
|