bring-parser


Namebring-parser JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryParser for the Bring file format - modern configuration and package management
upload_time2025-07-29 18:49:35
maintainerNone
docs_urlNone
authorDaftyon Team
requires_python>=3.7
licenseMIT
keywords config configuration parser yaml json xml bring easierlang package-manager
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # **Bring File Format Documentation**
![alt text](image.png)
## **πŸ“Œ 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**
```bring
# Basic key-value
name = "Bring"
version = 1.0
enabled = true
```

### **2. Objects (Nested Data)**
```bring
user = {
    id = 1
    name = "Alice" @required=true
    email = "alice@example.com" @format="email"
}
```

### **3. Arrays (Lists)**
```bring
features = ["logging", "caching", "auth"]
```

### **4. Attributes (Metadata)**
```bring
port = 8080 @min=1 @max=65535
```

### **5. Schemas (Validation Rules)**
```bring
schema Product {
    id = number @min=1
    name = string @maxLength=100
    price = float @min=0
}
```

### **6. Multi-Line Strings**
```bring
description = """
Bring is a modern file format
combining JSON, YAML, and XML.
"""
```

---

## **πŸš€ Use Cases**
### **1. EasierLang Package Management**
```bring
# Import packages from Daftyon Hub
package = {
    name = "http-server"
    version = "2.3.0"
    dependencies = ["json-parser", "logger"]
}
```

### **2. Configuration Files**
```bring
# Server config
server = {
    host = "0.0.0.0"
    port = 3000
    ssl = {
        enabled = true
        cert = "/path/to/cert.pem"
    }
}
```

### **3. Future: Payment Transactions (v2)**
```bring
# 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**
```bash
pip install bring-parser  # (Coming soon)
```

### **2. Parse a Bring File (Python)**
```python
from bring_parser import parse_bring_file

data = parse_bring_file("config.bring")
print(data["server"]["port"])  # 3000
```

### **3. CLI Usage**
```bash
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**
- [Package Definition](examples/package.bring)  
- [Server Config](examples/server.bring)  
- [Database Schema](examples/schema.bring)  

---

## **🎯 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](https://github.com/daftyon/bring)  

--- 

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "bring-parser",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "Daftyon Team <contact@daftyon.com>",
    "keywords": "config, configuration, parser, yaml, json, xml, bring, easierlang, package-manager",
    "author": "Daftyon Team",
    "author_email": "Daftyon Team <contact@daftyon.com>",
    "download_url": "https://files.pythonhosted.org/packages/96/d2/640cd61da142866dc7de414c97cf4082c24cae84bc2992e49e02f4a21c80/bring_parser-1.0.0.tar.gz",
    "platform": null,
    "description": "# **Bring File Format Documentation**\n![alt text](image.png)\n## **\ud83d\udccc Introduction**\n**Bring** is a modern, human-readable file format designed for two primary purposes:\n1. **Package Management for EasierLang** \u2013 Used to define and import packages from the **Daftyon Hub** in the upcoming **EasierLang** programming language.\n2. **Universal Data Exchange** \u2013 A powerful configuration and data exchange format that combines the best of **JSON**, **YAML**, and **XML** while solving their key issues.\n\nFuture 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.\n\n---\n\n## **\u2728 Why Bring?**\n| Feature | JSON | YAML | XML | **Bring** |\n|---------|------|------|-----|-----------|\n| **Human-Readable** | \u274c (No comments) | \u2705 | \u274c (Too verbose) | \u2705 |\n| **Supports Comments** | \u274c | \u2705 | \u2705 | \u2705 |\n| **Schema Validation** | \u274c (External) | \u274c | \u2705 (XSD) | \u2705 (Built-in) |\n| **Attributes/Metadata** | \u274c | \u274c | \u2705 (`<tag attr=\"\">`) | \u2705 (`@attr=value`) |\n| **No Ambiguity** | \u2705 | \u274c (`yes` vs `true`) | \u2705 | \u2705 |\n| **Multi-Line Strings** | \u274c (Escaped) | \u2705 | \u274c | \u2705 |\n| **Secure by Default** | \u2705 | \u274c (Code execution risk) | \u2705 | \u2705 |\n\n---\n\n## **\ud83d\udcdc Bring Syntax**\n### **1. Key-Value Pairs**\n```bring\n# Basic key-value\nname = \"Bring\"\nversion = 1.0\nenabled = true\n```\n\n### **2. Objects (Nested Data)**\n```bring\nuser = {\n    id = 1\n    name = \"Alice\" @required=true\n    email = \"alice@example.com\" @format=\"email\"\n}\n```\n\n### **3. Arrays (Lists)**\n```bring\nfeatures = [\"logging\", \"caching\", \"auth\"]\n```\n\n### **4. Attributes (Metadata)**\n```bring\nport = 8080 @min=1 @max=65535\n```\n\n### **5. Schemas (Validation Rules)**\n```bring\nschema Product {\n    id = number @min=1\n    name = string @maxLength=100\n    price = float @min=0\n}\n```\n\n### **6. Multi-Line Strings**\n```bring\ndescription = \"\"\"\nBring is a modern file format\ncombining JSON, YAML, and XML.\n\"\"\"\n```\n\n---\n\n## **\ud83d\ude80 Use Cases**\n### **1. EasierLang Package Management**\n```bring\n# Import packages from Daftyon Hub\npackage = {\n    name = \"http-server\"\n    version = \"2.3.0\"\n    dependencies = [\"json-parser\", \"logger\"]\n}\n```\n\n### **2. Configuration Files**\n```bring\n# Server config\nserver = {\n    host = \"0.0.0.0\"\n    port = 3000\n    ssl = {\n        enabled = true\n        cert = \"/path/to/cert.pem\"\n    }\n}\n```\n\n### **3. Future: Payment Transactions (v2)**\n```bring\n# Hypothetical payment example\ntransaction = {\n    id = \"txn_123\" @unique=true\n    amount = 100.50 @currency=\"USD\"\n    receiver = \"merchant@example.com\" @verified=true\n    timestamp = \"2025-01-01T12:00:00Z\" @format=\"ISO8601\"\n}\n```\n\n---\n\n## **\ud83d\udd27 How to Use**\n### **1. Install the Parser**\n```bash\npip install bring-parser  # (Coming soon)\n```\n\n### **2. Parse a Bring File (Python)**\n```python\nfrom bring_parser import parse_bring_file\n\ndata = parse_bring_file(\"config.bring\")\nprint(data[\"server\"][\"port\"])  # 3000\n```\n\n### **3. CLI Usage**\n```bash\nbring parse config.bring --format=json\n```\n\n---\n\n## **\ud83d\udccc Key Advantages Over JSON/YAML/XML**\n\u2705 **No Ambiguity** \u2013 Strict typing (no `yes`/`no` vs `true`/`false` like YAML)  \n\u2705 **Built-in Schema Validation** \u2013 No need for external schemas  \n\u2705 **Supports Comments** \u2013 Unlike JSON  \n\u2705 **Cleaner Than XML** \u2013 No closing tags or `< >` clutter  \n\u2705 **Secure** \u2013 No arbitrary code execution (unlike YAML)  \n\u2705 **Future-Ready** \u2013 Designed for payments, APIs, and more  \n\n---\n\n## **\ud83d\udcc5 Future Roadmap**\n- **v1.0** \u2013 Stable release for package management & configs  \n- **v1.5** \u2013 Schema validation improvements  \n- **v2.0** \u2013 Payment processing & financial transactions  \n\n---\n\n## **\ud83d\udcc2 Example Files**\n- [Package Definition](examples/package.bring)  \n- [Server Config](examples/server.bring)  \n- [Database Schema](examples/schema.bring)  \n\n---\n\n## **\ud83c\udfaf Conclusion**\nBring is **the ultimate file format** for:\n- **EasierLang package management**  \n- **Clean, readable configs**  \n- **Future payment systems**  \n\nIt combines **JSON\u2019s simplicity**, **YAML\u2019s readability**, and **XML\u2019s structure** while fixing their flaws.  \n\n\ud83d\ude80 **Get started today!**  \n\n---\n**License**: MIT  \n**Author**: Daftyon Team  \n**Repository**: [github.com/daftyon/bring](https://github.com/daftyon/bring)  \n\n--- \n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Parser for the Bring file format - modern configuration and package management",
    "version": "1.0.0",
    "project_urls": {
        "Bug Reports": "https://github.com/daftyon/bring-parser/issues",
        "Changelog": "https://github.com/daftyon/bring-parser/blob/main/CHANGELOG.md",
        "Documentation": "https://bring-parser.readthedocs.io/",
        "Homepage": "https://github.com/daftyon/bring-parser",
        "Repository": "https://github.com/daftyon/bring-parser.git"
    },
    "split_keywords": [
        "config",
        " configuration",
        " parser",
        " yaml",
        " json",
        " xml",
        " bring",
        " easierlang",
        " package-manager"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4cd6d84055d922103f38510a269e0200bb4dda3170a084d891549ab8ec6c0127",
                "md5": "97f2f3e90a493be8d724b9658c6baf08",
                "sha256": "97b215fd3ce7c9348b268fbd3e923806362f229ff3ae378fa6a466e3e04dcc71"
            },
            "downloads": -1,
            "filename": "bring_parser-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "97f2f3e90a493be8d724b9658c6baf08",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 28348,
            "upload_time": "2025-07-29T18:49:34",
            "upload_time_iso_8601": "2025-07-29T18:49:34.369011Z",
            "url": "https://files.pythonhosted.org/packages/4c/d6/d84055d922103f38510a269e0200bb4dda3170a084d891549ab8ec6c0127/bring_parser-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "96d2640cd61da142866dc7de414c97cf4082c24cae84bc2992e49e02f4a21c80",
                "md5": "d5e8f6396edf8939b6c7e3da01c8e643",
                "sha256": "8f8a73d8d19134ff23eec04b045e798e87eb4507caf6c8e52a9c3c367b4543bc"
            },
            "downloads": -1,
            "filename": "bring_parser-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d5e8f6396edf8939b6c7e3da01c8e643",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 50384,
            "upload_time": "2025-07-29T18:49:35",
            "upload_time_iso_8601": "2025-07-29T18:49:35.699808Z",
            "url": "https://files.pythonhosted.org/packages/96/d2/640cd61da142866dc7de414c97cf4082c24cae84bc2992e49e02f4a21c80/bring_parser-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-29 18:49:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "daftyon",
    "github_project": "bring-parser",
    "github_not_found": true,
    "lcname": "bring-parser"
}
        
Elapsed time: 0.60976s