Metadata-Version: 2.4
Name: sbe2
Version: 0.1.0
Summary: An example Python package
Project-URL: Homepage, https://github.com/szymonwieloch/py-simple-binary-encoding
Author: Szymon Wieloch
License: MIT
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.12
Requires-Dist: lxml
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Description-Content-Type: text/markdown

# Python Simple Binary Encoding Library

Simple Binary Encoding is an ultra fast binary encoding protocol use commonly in high-frequency trading.
While code generators from schema are publicly available, the protocol lacks Python support and basic tooling.
This project aims to solve those issues.

## Submodules

- `schema` - Python object model of a parsed schema file.
- `xmlparser` - parses a schema file into a Python object model.
- `linter` - (**TODO**) - analyses the schema looking for common mistakes.
- `backcheck` - (**TODO**) - check if the given change applied to the schema is backward compatible, This check added to CI solves the most common issue of breaking the protocol on the binary level while extending it.
- `pygen` - (**TODO**) generates Python code for parsing and encoding messages.
- `pyruntime` - (**TODO**) since Python is a dynamic language, it is possible to generate types in the runtime. This skips the common code-generation part characteristic to all strongly typed languages.

This module can also be used to create support for non-standard programming languages or for creating a non-standard input format (as the standard XML format is one of common complains).

## Example

python3```
from sbe2.xmlparser import parse_schema
schema = parse_schema('schema.xml')
```
