A lightweight, high-performance XML-like Domain Specific Language (XDSL) library for .NET.
- Fast and memory-efficient XDSL document parsing and writing
- Support for elements, attributes, tags, and comments
- Resource loading capabilities
- Streaming support for large documents
- Indented and non-indented output formats
- Async operations support
- Docker integration ready
- Benchmarking tools included
The solution consists of three main projects:
- Realtin.Xdsl: Core library containing the base XDSL implementation
- Realtin.Xdsl.Experimental: Extended features and experimental implementations
- Realtin.Xdsl.Lab: Benchmarking and testing project for performance analysis
Add a reference to the Realtin.Xdsl package in your project:
<PackageReference Include="Realtin.Xdsl" Version="1.0.0" />
// Create a new XDSL document
var document = new XdslDocument();
// Create and add elements
var root = document.CreateElement("root", element => { element.CreateElement("child", child => { child.AddAttribute("name", "value"); child.Text = "Hello XDSL!"; }); });
// Write document to string
string output = document.WriteToString(indented: true);
Base class for all XDSL elements, supporting:
- Hierarchical node structure
- Attribute management
- Resource loading
- Text content
Represents an XDSL document with capabilities for:
- Loading and saving documents
- Managing document structure
- Version control
- Document type specification
Provides efficient writing capabilities with:
- Indented output support
- Streaming capabilities
- StringBuilder integration
- Performance optimizations
The library is designed with performance in mind:
- Aggressive inlining of critical methods
- Minimal allocations
- Optional pooling for frequently used objects
- Optimized string operations
- .NET Standard 2.1 or higher
- C# 13.0 features supported
- Docker (optional, for containerized testing)
GNU GENERAL PUBLIC LICENSE - See LICENSE file for details
- Realtin (CodingBoson)
- BosonWare Technologies
Contributions are welcome! Please feel free to submit a Pull Request.