4 个版本 (重大变更)

0.7.0 2021 年 10 月 26 日
0.6.0 2021 年 6 月 27 日
0.5.1 2021 年 5 月 5 日
0.5.0 2021 年 5 月 4 日
0.4.0 2021 年 2 月 10 日

#2551解析器实现

每月 48 次下载

MIT/Apache

5.5MB
7K SLoC

FerrumFIX

Crates.io Website Docs.rs Minimal rustc version matrix.org License CI status

喜欢 FerrumFIX?请买我一杯咖啡并 支持 项目!

FerrumFIX 是一个在 Rust 中实现的免费开源 FIX 引擎。请注意,它目前正在大力开发中,非常不稳定,因此所有感兴趣的相关方应避免在 1.0 版本发布之前在生产中使用它。性能和完全遵守 FIX 协议仍然是项目的核心目标,这可能在某种程度上为其他人的工作提供有用的基础。

关于

FerrumFIX 为 FIX 协议系列提供解析、验证、错误恢复以及(反)序列化。

FIX Technical Standard stack

上面的插图简要地描述了 FIX 的全部范围,它作为所有现代 FIX 实现的参考点。FerrumFIX 旨在完全合规... 最终。工程努力最初集中在核心功能,例如标签值编码和 FIX 4.4。

FerrumFIX 根据 OSI 模型,在合理允许的范围内强制执行关注点的严格分离。

  • 第 4 层(传输层):fefixs
  • 第 5 层(会话层):fefix::session
  • 第 6 层(表示层):fefix::tagvaluefefix::jsonfefast
  • 第 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)友好的加密货币衍生品交易所。

Bitwyre logo

如有商业咨询,请联系 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.txtLICENSE-APACHE.txt 以获取更多信息。

所有与 FIX 协议相关的知识产权,包括但不限于 FerrumFIX 随附的原始文档,均由 FIX 协议有限公司根据 Creative Commons Attribution - No Derivatives 4.0 国际(CC BY-ND 4.0)许可。通过向此项目做出贡献,您同意遵守所有许可要求。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是因合同、侵权或其他方式引起的,与软件或软件的使用或其他方式有关。

依赖关系

~28MB
~629K SLoC