Giter Club home page Giter Club logo

fix-decoder's Introduction

FIX Decoder

Visit the live site at https://drewnoakes.com/fix-decoder/

Screenshot of FIX Decoder

A convenient and powerful decoder for FIX messages.

All processing is done locally in your browser, so no one can snoop on your messages.

Unlike the most prominent online FIX message decoder, this version is open source so you can prove that your messages are safe. This version supports a wider range of message representations too, including multiple messages.

For example, you can paste directly from a QuickFIX log:

<20121206-12:04:56, FIX.4.2:MyComp->YourComp, outgoing> (8=FIX.4.2 9=189 35=AE 34=510 49=MyComp 52=20121206-12:04:56.898 56=YourComp 22=4 31=157.8 32=10 43=N 48=GB00B16GWD56 60=20121206-12:04:56.891 64=20121206 150=0 570=N 571=TRADE_ID_88871 828=0 918=GBX 10=028 )

<20121206-12:05:06, FIX.4.2:MyComp->YourComp, incoming> (8=FIX.4.2 9=119 35=AR 49=YourComp 56=MyComp 34=753 52=20121206-12:05:08 370=20121206-12:04:58.744 571=TRADE_ID_88871 150=0 939=0 10=106 )

Note the leading text is ignored, and that there are multiple messages. Also the non-printable SOH character (\001) is handled correctly.

Using pipe characters (|) as separators is also supported.

How to build

In order to build this project, you need to have 2 tools installed on your computer: yarn (package manager), and gulp (build system). Please find below the link to their respective documentation:

To download the dependancies, run on the repository's folder:

yarn install

Then to build the project, just type:

gulp

The files will be copied on the 'dist' directory.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

fix-decoder's People

Contributors

chrismasters avatar dependabot[bot] avatar drekbour avatar drewnoakes avatar techie2000 avatar whatthefrog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fix-decoder's Issues

Allow sending message via encoded URL hash fragment

It can be convenient to send a message to someone else for review. The page's hash fragment should be updated (provided it's not too long) with an encoded version of the message text. Possibly use Base64 encoding.

Support FIX50

Seeing general conversation on "doesn't support field NNN" always returns to this, fix-decoder should support the current standard.

  • Dump FIX 5 fields onto the end of data.js as a fig-leaf
  • Add capability for multiple (vanilla) dictionaries with version-detection

Allow ^A and tab separators in the parser

Hi,

This is a nice tool, we modified the regexpr to allow ^A and tabular separators

I know it only breaks on ^, it works, so I guess you only keep digits for the fixtags part later on in the code

Tabs are little bit pointless as putty gives away spaces when copy pasting from it, but I guess some people use them for readability as we do, but I am not 100% sure they won't be used in the fix values

see diff below

svn diff
Index: scripts/app/FixParser.js
===================================================================
--- scripts/app/FixParser.js    (revision 23)
+++ scripts/app/FixParser.js    (working copy)
@@ -18,7 +18,8 @@
         FixParser.prototype.parse = function(str)
         {
             // Create a sequence of fields
-            var regex = /([0-9]+)=([^|\001]*)/g,
+            var regex = /([0-9]+)=([^|\001^\t]*)/g,
                 fields = [], result;

             var fixVersion = 'unknown';
@@ -113,4 +114,4 @@

         return FixParser;
     }
-);
\ No newline at end of file
+);

Problem building the package

Hello,

I am not a js expert. i am trying to build fix-decoder but when I run gulp I have the next error:

gulp[14802]: ../src/node_contextify.cc:635:static void node::contextify::ContextifyScript::New(const v8::FunctionCallbackInfo<v8::Value>&): Assertion `args[1]->IsString()' failed.
 1: 0x8fa0c0 node::Abort() [gulp]
 2: 0x8fa195  [gulp]
 3: 0x92e5be node::contextify::ContextifyScript::New(v8::FunctionCallbackInfo<v8::Value> const&) [gulp]
 4: 0xb8d2db  [gulp]
 5: 0xb8f272 v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) [gulp]
 6: 0x379a75b5be1d 
Aborted

My tools versions:

eamanu@debian:~/dev/fix-decoder$ node --version
v10.16.3
eamanu@debian:~/dev/fix-decoder$ npm --version
6.9.0
eamanu@debian:~/dev/fix-decoder$ yarn --version
1.17.3
eamanu@debian:~/dev/fix-decoder$ gulp --version
CLI version: 2.2.0
Local version: 3.9.1
eamanu@debian:~/dev/fix-decoder$ 

Tag 1057 does not display Field Name value

Expected Output

1057 | AggressorIndicator | BLAH

Actual Output

1057 | | BLAH

Valid dictionary values of BLAH are

'Y' | Order initiator is aggressor
'N' | Order initiator is passive

Visually identify header fields

The structure of FIX messages is such that nested structures are represented flattened in the parent. Their boundaries are not self-describing, and additional metadata about the format is required.

Header fields appear at the beginning of the message.

From Wikipedia:

Up to FIX.4.4, the header contained three fields: 8 (BeginString), 9 (BodyLength), and 35 (MsgType) tags.

From FIXT.1.1 / FIX.5.0, the header contains five mandatory fields and one optional field: 8 (BeginString), 9 (BodyLength), 35 (MsgType), 49 (SenderCompID), 56 (TargetCompID) and 1128 (ApplVerID - if present must be in 6th position).

Further, messages which do not contain a valid header should be identified as erroneous.

Remove Google Analytics Page Tracking

This project uses Google Analytics to track page views. Since the processed input is part of the page URL, the processing is not kept locally.

Please remove page tracking or remove the claim that no data is being sent via the internet.

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.