Skip to main content

Parser for the Bring file format - modern configuration and package management

Project description

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


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

bring_parser-1.0.0.tar.gz (50.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bring_parser-1.0.0-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

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

Hashes for bring_parser-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8f8a73d8d19134ff23eec04b045e798e87eb4507caf6c8e52a9c3c367b4543bc
MD5 d5e8f6396edf8939b6c7e3da01c8e643
BLAKE2b-256 96d2640cd61da142866dc7de414c97cf4082c24cae84bc2992e49e02f4a21c80

See more details on using hashes here.

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

Hashes for bring_parser-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97b215fd3ce7c9348b268fbd3e923806362f229ff3ae378fa6a466e3e04dcc71
MD5 97f2f3e90a493be8d724b9658c6baf08
BLAKE2b-256 4cd6d84055d922103f38510a269e0200bb4dda3170a084d891549ab8ec6c0127

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page