RapideFix

    A superb FIX message parser library.

    What's the area?

    FIX messages: Financial world has standard to define the interface of pre-trade and trade communications, FIX. Billions of these messages are exchanged every day. Considering the amount of messages can arrive to a trading application/engine, it is not hard to say, we are going to end up with enormous amount of data, where parsing efficiently is crucial.

    What's the main purpose?

    Save unnecessary memory allocations: Generally, the application will have to parse the string stream FIX message to it's internal representation. Parsing such a string stream, most of the time, results a significant amount of substring operation. From the nature of string in C#, as a consequence, there will be a big amount of temporary string object. It is not ideal, as we could avoid to create such temporary data, assuming that the incoming message we are actually parsing won't change.

    How to achieve this?

    Using Span and Memory: Take advantage of newly introduced structures in C#, Span and Memory. At every possible cases, where a substring, subset of indexible immutable collection of elements needed, use these structures to avoid the overhead of creating the subset. Instead wrap them into the advanced structure, that will provide an easy interface and hide the logical complexity of dealing with pointers, references.

    Getting started and Documentation

    Getting started and a full api documentation is available here.

    Contribution

    RapideFix is an open source project, community members can contribute by creating pull requests to the repository. For your pull requests please follow projects's code conventions. To get started clone git repository. You will need the latest Visual Studio Communinity with (C# 7.2 or above) to build the solution.

    When issuing a pull-request, please make sure to cover new features with unit tests and that necessary documentation is generated by the DocFx project. The pull request shall also pass the required gated build checks.

    • Improve this Doc
    Back to top DanubeDev.RapideFix - Documentation