Data Format · Package Management · v1.0 · MIT

Bring

A modern, human-readable file format for configuration and package management — combining the best of JSON, YAML, and XML while fixing their flaws.

Human-Readable Built-in Schemas Inline Attributes Comments No Ambiguity Daftyon
# Install the Python parser
pip install bring-parser

# Parse a file
from bring_parser import parse_bring_file
data = parse_bring_file("config.bring")
→ github.com/Daftyon/Bring

Motivation

Why Bring?

Modern configuration formats each have fundamental limitations. JSON lacks comments and schema validation. YAML introduces ambiguity and code-execution risks. XML is verbose and requires closing tags. Bring solves all of these in a single, secure format.

FeatureJSONYAMLXMLBring
Human-Readable~
Supports Comments
Built-in Schema Validation~ (XSD)
Inline Attributes/Metadata
No Ambiguity
Secure (no code exec)
🔒
Secure by Design
No arbitrary code execution. No implicit type coercion. true is always true — not yes, on, or TRUE.
📐
Built-in Schema
Define validation rules inline with schema blocks. No external XSD or JSON Schema files needed.
🏷️
Inline Attributes
Attach metadata to any value with @attr=value syntax — like XML attributes but cleaner.
📦
Package Management
Native format for EasierLang package definitions on the Daftyon Hub.

Language Reference

Syntax

Key-Value Pairs

The fundamental building block. Keys are bare identifiers or quoted strings. Values are separated by =.

bring
# Primitives name = "Bring" version = 1.0 enabled = true timeout = null port = 8080 ratio = 3.14

Objects

Nested key-value structures use curly braces. Objects can be nested to any depth. No commas required between entries.

bring
server = { host = "0.0.0.0" port = 8080 ssl = { enabled = true cert_path = "/etc/ssl/cert.pem" } }

Arrays

Ordered lists of any value type, including nested objects. Items are separated by commas.

bring
allowed_ips = ["127.0.0.1", "192.168.1.0/24"] features = [ { name = "caching" enabled = true ttl = 3600 }, { name = "analytics" enabled = false } ]

Attributes @metadata

Attach inline metadata to any key-value pair using @attr=value syntax. Similar to XML attributes but cleaner — no closing tags required.

bring
# Validation attributes port = 8080 @min=1 @max=65535 username = "alice" @required=true @maxLength=32 email = "alice@example.com" @format="email" amount = 100.50 @currency="USD" @min=0

Schemas

Define validation rules directly in the file using schema blocks. Built-in, no external tools needed.

bring
schema Product { id = number @min=1 name = string @maxLength=100 price = float @min=0 tags = array } schema User { id = number @required=true username = string @minLength=3 email = string @format="email" active = bool }

Comments

Line comments start with #. They work anywhere — top-level, inside objects, inside arrays.

bring
# Top-level comment database = { # Primary database connection host = "db.example.com" port = 5432 # Default PostgreSQL port }

Interactive

Try the Editor

Write Bring syntax on the left and see the parsed output on the right — live, with error highlighting.

Bring Live Editor
⤢ Full Editor
● Input .bring ready
1
○ Output JSON waiting
// Parsed output will appear here...

Getting Started

Installation

Python
pip install bring-parser
from bring_parser import parse_bring_file data = parse_bring_file("config.bring") print(data["server"]["host"])
CLI
bring parse config.bring --format=json bring validate config.bring --schema=schema.bring bring convert config.json config.bring
Applications

Use Cases

🖥️
Server Configuration
Replace YAML/TOML config files with Bring's cleaner syntax, comments, and built-in validation attributes.
📦
EasierLang Packages
Define and import packages from the Daftyon Hub in the EasierLang programming language ecosystem.
🔄
Data Exchange
A universal structured data format for APIs and services — more readable than JSON, safer than YAML.
💳
Payments (v2)
Future support for payment processing and financial transactions with typed, validated fields.
Future

Roadmap

v1.0
Stable Core
Key-value pairs, objects, arrays, attributes, schemas, comments. Python parser. CLI tooling. MIT.
Released
v1.5
Schema Improvements
Enhanced validation rules, cross-file schema imports, better error messages, more language parsers.
In Progress
v2.0
Payments & Financial Transactions
Typed transaction blocks, currency attributes, verified fields, and secure financial data exchange.
Planned