Matchstick Data Model
Open-source canonical data model for Matchstick products.
Overview
The Matchstick Model provides:
- Protocol Buffers: Canonical schema definitions
- Language Bindings: Generated code for Rust, Python, TypeScript
- Consistency: Shared types across all Matchstick products
Core Concepts
| Concept | Description |
|---|---|
| Events | Market events (filings, trades, news) |
| Bars | OHLCV price bars |
| Lineage | Data provenance tracking |
| Manifests | Dataset metadata |
Quick Start
Clone the Repository
bash
git clone https://github.com/matchstick-trading/matchstick-model.gitGenerate Bindings
Use standard protobuf tooling:
bash
# Rust (with prost)
prost-build proto/*.proto
# Python
python -m grpc_tools.protoc -I proto/ --python_out=gen/ proto/*.proto
# TypeScript
npx protoc --ts_out=gen/ proto/*.protoDesign Principles
- Proto as Source: All types defined in .proto files
- Generated Bindings: Language code is auto-generated
- Backward Compatible: Field additions don't break code
- JSON Interoperable: All messages serialize to JSON
Repository Structure
matchstick-model/
├── proto/
│ └── matchstick/
│ ├── events/v1/event.proto
│ ├── bars/v1/bar.proto
│ └── lineage/v1/lineage.proto
├── docs/
└── README.mdNext Steps
- Events - Market event schema
- Proto Reference - Full schema definitions