Skip to main content

Bring File Format Documentation

alt text

📌 Introduction

Bring is a modern, human-readable file format designed for two primary purposes:

  1. Package Management for EasierLang – Used to define and import packages from the Daftyon Hub in the upcoming EasierLang programming language.
  2. 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


Metadata

Release files for bring-parser 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bring-parser 1.0.0
File Size Uploaded
bring_parser-1.0.0.tar.gz 50.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bring-parser 1.0.0
File Interpreter ABI Platform
bring_parser-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 78.7 kB

Release files / bring_parser-1.0.0.tar.gz

Download URL bring_parser-1.0.0.tar.gz
Size 50.4 kB
Tags Source
SHA-256 checksum
How to use checksums
8f8a73d8d19134ff23eec04b045e798e87eb4507caf6c8e52a9c3c367b4543bc
BLAKE2b-256 checksum
How to use checksums
96d2640cd61da142866dc7de414c97cf4082c24cae84bc2992e49e02f4a21c80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.6

Release files / bring_parser-1.0.0-py3-none-any.whl

Download URL bring_parser-1.0.0-py3-none-any.whl
Size 28.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
97b215fd3ce7c9348b268fbd3e923806362f229ff3ae378fa6a466e3e04dcc71
BLAKE2b-256 checksum
How to use checksums
4cd6d84055d922103f38510a269e0200bb4dda3170a084d891549ab8ec6c0127
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.6

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page