Giter Club home page Giter Club logo

FerrumFIX

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

Love FerrumFIX? Buy me a coffee and support the project!

FerrumFIX is a free and open source FIX engine implementation in Rust. Please note that it's currently under heavy development and wildly unstable, so all interested parties should refrain from using it in production prior to its 1.0 release. Performance and full adherence to the FIX protocol are nevertheless core goals of the project which, if anything, might serve as a useful foundation for others' work.

About

FerrumFIX provides parsing, validation, error recovery, and (de)serialization for the FIX family of protocols.

FIX Technical Standard stack

The above illustration succintly describes the full scope of FIX and it serves as a reference point for all modern FIX implementations. FerrumFIX aims with total compliance... eventually. Engineering efforts are initially focused on core features e.g. tag-value encoding and FIX 4.4.

FerrumFIX enforces strict separation of concerns according to the OSI model, as reasonably allowed by the FIX specification.

  • Layer 4 (Transport Layer): fefixs.
  • Layer 5 (Session Layer): fefix::session.
  • Layer 6 (Presentation Layer): fefix::tagvalue, fefix::json, fefast.
  • Layer 7 (Application Layer): fefix::Dictionary.

You don't have to understand the whole tech stack to use a single layer; in fact, FerrumFIX makes sure that you only ever need to worry about layers above your chosen abstraction level. For most users, that would be Layer 7 (i.e. semantics of FIX messages and business logic). On the other hand, you will need to delve deep into lower layers in case you plan on building a fully-fledged FIX engine.

Core features:

  • Code generation (Rust, possibly others).
  • FIX 4.2.
  • FIX 4.4.
  • FIX 5.0 Service Pack 2.

Encodings:

  • Tagvalue (classic FIX).
  • FIXML.
  • Simple Binary Encoding (SBE).
  • Google Protocol Buffers (GPB).
  • JavaScript Object Notation (JSON).
  • Abstract Syntax Notation (ASN.1).
  • FIX Adapted for STreaming (FAST).

Sponsors

FerrumFIX is kindly sponsored by Bitwyre. Bitwyre is a next gen, HFT-friendly Cryptocurrency Derivatives Exchange.

Bitwyre logo

Please reach out at <[email protected]> for business inquiries.

Contributing

All development happens on GitHub at ferrumfix/ferrumfix. Contributions both from volunteers and companies are welcome. Depending on the size and scope of your intended contributions, it's likely a good idea to open beforehand a GitHub issue to discuss any details. Please note that our branching strategy is inspired by the (in)famous Git Flow, which is a good fit for software that requires complex versioning such as FIX implementations. Versioning adheres to SemVer 2.0.

Legal

FerrumFIX is available under the terms of the MIT license and Apache License 2.0, at your choice. See LICENSE-MIT.txt and LICENSE-APACHE.txt in this repository for more information.

All FIX Protocol-related intellectual property, including but not limited to the original documentation that ships with FerrumFIX, is licensed by FIX Protocol Ltd. under Creative Commons Attribution - No Derivatives 4.0 International (CC BY-ND 4.0). By contributing to this project you agree to comply with all license requirements.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

FerrumFIX's Projects

FerrumFIX doesnโ€™t have any public repositories yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.