A high-performance matching engine for limit order books written in Go, supporting market/limit orders and cancellations.
Go Orderbook is a matching engine implementation for financial limit order books, written in Go. It provides the core logic for matching buy and sell orders based on price-time priority, enabling the creation of custom trading systems and exchange platforms. The project solves the need for a high-performance, reliable foundation for building trading engines without unnecessary complexity.
Developers and engineers building trading systems, exchange platforms, or financial applications that require a limit order book matching engine. This includes those working on cryptocurrency exchanges, stock trading platforms, or any system needing order matching functionality.
Developers choose Go Orderbook for its high performance, capable of processing over 300,000 trades per second, and its memory efficiency with optimized data structures. It offers a straightforward, correct implementation with support for standard order types and JSON serialization, making it a practical choice over building a matching engine from scratch.
Matching Engine for Limit Order Book in Golang
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Capable of processing over 300,000 trades per second, making it suitable for high-frequency trading systems as highlighted in the README benchmarks.
Uses optimized data structures for minimal memory usage, which is critical for scalability in trading environments.
Implements fair matching algorithms ensuring correct and predictable order execution, a core requirement for exchanges.
Provides JSON marshalling and unmarshalling for order data, simplifying integration with web APIs and data storage.
Only handles basic market and limit orders; lacks advanced types like stop-loss or iceberg orders, which are essential for many modern trading systems.
Does not include mechanisms for saving or restoring order book state, requiring additional work for fault tolerance and data recovery.
Relies on the shopspring/decimal package for arithmetic, which adds an external dependency and potential setup complexity.