4 个版本 (重大变更)
0.7.0 | 2021 年 10 月 26 日 |
---|---|
0.6.0 | 2021 年 6 月 27 日 |
0.5.1 | 2021 年 5 月 5 日 |
0.5.0 |
|
0.4.0 | 2021 年 2 月 10 日 |
#2551 在 解析器实现 中
每月 48 次下载
5.5MB
7K SLoC
FerrumFIX 是一个在 Rust 中实现的免费开源 FIX 引擎。请注意,它目前正在大力开发中,非常不稳定,因此所有感兴趣的相关方应避免在 1.0 版本发布之前在生产中使用它。性能和完全遵守 FIX 协议仍然是项目的核心目标,这可能在某种程度上为其他人的工作提供有用的基础。
关于
FerrumFIX 为 FIX 协议系列提供解析、验证、错误恢复以及(反)序列化。
上面的插图简要地描述了 FIX 的全部范围,它作为所有现代 FIX 实现的参考点。FerrumFIX 旨在完全合规... 最终。工程努力最初集中在核心功能,例如标签值编码和 FIX 4.4。
FerrumFIX 根据 OSI 模型,在合理允许的范围内强制执行关注点的严格分离。
- 第 4 层(传输层):
fefixs
。 - 第 5 层(会话层):
fefix::session
。 - 第 6 层(表示层):
fefix::tagvalue
,fefix::json
,fefast
。 - 第 7 层(应用层):
fefix::Dictionary
。
您不需要理解整个技术栈就可以使用单个层;实际上,FerrumFIX 确保您只需关注您选择的抽象层以上的层。对于大多数用户来说,那将是第 7 层(即 FIX 消息的语义和业务逻辑)。另一方面,如果您计划构建一个完整的 FIX 引擎,您将需要深入研究更底层的层。
核心功能
- 代码生成(Rust,可能还有其他)。
- FIX 4.2。
- FIX 4.4。
- FIX 5.0 服务包 2。
编码
- Tagvalue(经典 FIX)。
- FIXML。
- 简单二进制编码(SBE)。
- Google 协议缓冲区(GPB)。
- JavaScript 对象表示法(JSON)。
- 抽象语法表示法(ASN.1)。
- FIX 适用于流式传输(FAST)。
赞助商
FerrumFIX 由 Bitwyre 亲切赞助。Bitwyre 是一个面向下一代、对高频交易(HFT)友好的加密货币衍生品交易所。
如有商业咨询,请联系 Filippo Costa <filippo.costa@protonmail.com>
。
贡献
所有开发都在 GitHub 上进行,网址为 ferrumfix/ferrumfix
。欢迎志愿者和公司做出贡献。根据您计划贡献的大小和范围,提前在 GitHub 上打开一个 issue 讨论任何细节可能是个好主意。请注意,我们的分支策略受到了(臭名昭著的)Git Flow 的启发,这对于需要复杂版本控制,如 FIX 实现的软件来说是一个很好的选择。版本控制遵循 SemVer 2.0。
法律
FerrumFIX 可在 MIT 许可证和 Apache License 2.0 的条款下使用,任选其一。请参阅此存储库中的 LICENSE-MIT.txt
和 LICENSE-APACHE.txt
以获取更多信息。
所有与 FIX 协议相关的知识产权,包括但不限于 FerrumFIX 随附的原始文档,均由 FIX 协议有限公司根据 Creative Commons Attribution - No Derivatives 4.0 国际(CC BY-ND 4.0)许可。通过向此项目做出贡献,您同意遵守所有许可要求。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是因合同、侵权或其他方式引起的,与软件或软件的使用或其他方式有关。
依赖关系
~28MB
~629K SLoC