如果你希望按照自己的需求打造金融交易平台,那么应当选择合适的交易撮合引擎进行二次开发而不是基于完整的交易平台实现进行修改。本文将介绍10个采用不同语言开发的开源的撮合引擎,你可以根据自己的需要选择。
要快速掌握区块链和数字货币应用开发,推荐汇智网的区块链开发系列在线教程。 内容涵盖比特币、以太坊、EOS、超级账本、Tendermint等多种主流区块链 平台,同时支持Java、C#、Python、PHP、JavaScript、Dart等多种开发 语言。
Liquibook是OCI提供的开源交易撮合引擎,主要采用C++开发,因此性能极佳:
Liquibook的功能很完善,支持市价委托单、限价委托单、止损委托单等常见类型的委托,同时内置多级市场深度聚合功能,并且提供事件通知功能,引擎内发生的重要事件,例如接受订单、成交、取消订单等,应用程序都可以实时捕捉。
Liquibook是一个仅包含头文件的库,因此你只需要在自己的项目中引入这些头文件就可以了。
exchange-core是一个基于LMAX Disruptor和Eclipse Collections实现的超快的交易所核心撮合引擎。可以在8年前的硬件上(intel志强x5690 CPU)实现每秒5百万委托账本操作:
rate | 50.0% | 90.0% | 95.0% | 99.0% | 99.9% | 99.99% | worst |
---|---|---|---|---|---|---|---|
125K | 0.6µs | 0.9µs | 1.0µs | 1.4µs | 4µs | 24µs | 41µs |
250K | 0.6µs | 0.9µs | 1.0µs | 1.4µs | 9µs | 27µs | 41µs |
500K | 0.6µs | 0.9µs | 1.0µs | 1.6µs | 14µs | 29µs | 42µs |
1M | 0.5µs | 0.9µs | 1.2µs | 4µs | 22µs | 31µs | 45µs |
2M | 0.5µs | 1.2µs | 3.9µs | 10µs | 30µs | 39µs | 60µs |
3M | 0.7µs | 3.6µs | 6.2µs | 15µs | 36µs | 45µs | 60µs |
4M | 1.0µs | 6.0µs | 9µs | 25µs | 45µs | 55µs | 70µs |
5M | 1.5µs | 9.5µs | 16µs | 42µs | 150µs | 170µs | 190µs |
6M | 5µs | 30µs | 45µs | 300µs | 500µs | 520µs | 540µs |
7M | 60µs | 1.3ms | 1.5ms | 1.8ms | 1.9ms | 1.9ms | 1.9ms |
exchange-core的主要特性包括:
开发语言:C++ 源代码:https://github.com/chronoxor/CppTrader
CppTrader是采用C++开发的一套用于构建高性能交易平台的组件,包括以下内容:
CppTrader的主要特性包括:
开发语言:GO 源代码:https://github.com/fmstephe/matching_engine
这是一款采用GO语言开发的金融交易撮合引擎,非常适合希望深入探究撮合引擎实现的go开发者。
开发语言:C 源代码:https://github.com/viabtc/viabtc_exchange_server
viaBTC交易服务器是viabtc开源的代码,它其实是一套基本完整的交易所后台系统,包括撮合引擎、行情服务、历史数据服务以及API服务等多个组件:
由于viabtc交易服务器是一个系统,因此部署的复杂性更高一些,你需要MySQL、Redis、Kafka等基础设施,相比于单纯的撮合引擎而言适应不同项目需求的灵活性要弱一些,但好处在于你基本上只需要补充一个前台系统就可以了。
开发语言:Python 源代码:https://github.com/gavincyi/LightMatchingEngine
LightMatchingEngine是一个轻量级的交易撮合引擎,采用Python开发。轻量的意思是其支持的特性有限,但适合希望深入了解交易撮合引擎实现原理的Python开发者利用。
LightMatchingEngine支持Python2.x和Python3.x。
开发语言:Rust 源代码:https://github.com/dgtony/orderbook-rs
Orderbook-rs是采用Rust开发的交易撮合引擎,适合用于研究交易撮合引擎的实现原理。
orderbook-rs支持的特性包括:
原文链接:7个开源交易撮合引擎 - 汇智网