All Projects → NeuraLegion → fix

NeuraLegion / fix

Licence: MIT License
FIX library for crystal

Programming Languages

crystal
512 projects

Projects that are alternatives of or similar to fix

FreeRADIUS-Server-Configuration-Tool
🎯 FreeRADIUS Server Configuration Tool 🖥️
Stars: ✭ 33 (+175%)
Mutual labels:  protocol
imageorient
Go image decoding with respect to the EXIF orientation tag
Stars: ✭ 62 (+416.67%)
Mutual labels:  fix
elvisp
Virtual ISP / IP tunnel daemon for cjdns.
Stars: ✭ 19 (+58.33%)
Mutual labels:  protocol
spec
Tox Protocol Specification
Stars: ✭ 29 (+141.67%)
Mutual labels:  protocol
dystopia
Anonymity on the Internet by Transparent way.
Stars: ✭ 97 (+708.33%)
Mutual labels:  protocol
FullProxy
Bind and reverse connection based, SOCKS5, HTTP and PortForward based portable proxy
Stars: ✭ 22 (+83.33%)
Mutual labels:  protocol
OverlayViewController
A simple way to present your child view controller on top of another one
Stars: ✭ 17 (+41.67%)
Mutual labels:  protocol
TradingMachine
TradingMachine is a mini-trading system simulation, whose components (market data and order feeds, FIX acceptor and initiator, back-end for filled orders) interact by queues and topics.
Stars: ✭ 26 (+116.67%)
Mutual labels:  fix
ampleforth-contracts
Smart contracts for Ampleforth Protocol (working name uFragments)
Stars: ✭ 238 (+1883.33%)
Mutual labels:  protocol
panzerlop
Configuration Guides for fixing things in Linux, Proton & KDE
Stars: ✭ 23 (+91.67%)
Mutual labels:  fix
fix-decoder
Unravels FIX messages into human readable tables
Stars: ✭ 71 (+491.67%)
Mutual labels:  fix
loco.rs
Loco Protocol Wrapper for Rust
Stars: ✭ 38 (+216.67%)
Mutual labels:  protocol
RDMnet
Implementation of ANSI E1.33
Stars: ✭ 29 (+141.67%)
Mutual labels:  protocol
RTP-Audio-and-Video-for-the-Internet-Chinese-Version
No description or website provided.
Stars: ✭ 30 (+150%)
Mutual labels:  protocol
ucp
UCP protocol in Go
Stars: ✭ 40 (+233.33%)
Mutual labels:  protocol
encrypted-smiley-secure-protocol
Node.JS library Encrypted Smiley ® Secure Protocol (eSSP, SSP)
Stars: ✭ 22 (+83.33%)
Mutual labels:  protocol
yahdlc
yahdlc - Yet Another HDLC implementation
Stars: ✭ 47 (+291.67%)
Mutual labels:  protocol
gemini
Gemini protocol server & client.
Stars: ✭ 39 (+225%)
Mutual labels:  protocol
gopher
A simple server for the Gopher protocol written in Go.
Stars: ✭ 17 (+41.67%)
Mutual labels:  protocol
librelp
OFFICIAL librelp repository on github
Stars: ✭ 25 (+108.33%)
Mutual labels:  protocol

fix

A FIX ( Financial Information eXchange ) library written in pure Crystal.

CircleCI

  • From Wikipedia

The Financial Information eXchange (FIX) protocol is an electronic communications protocol initiated in 1992 for international real-time exchange of information related to the securities transactions and markets. With trillions of dollars traded annually on the NASDAQ alone, financial service entities are investing heavily in optimizing electronic trading and employing direct market access (DMA) to increase their speed to financial markets. Managing the delivery of trading applications and keeping latency low increasingly requires an understanding of the FIX protocol.

Installation

Add this to your application's shard.yml:

dependencies:
  fix:
    github: NeuraLegion/fix

Usage

require "fix"

Create a Session object, hook to its callbacks(on_logon, on_error, from_admin, to_admin, from_app, and to_app) and run.

You can find the below example in the examples/ folder

sess = FIX::Session.new "localhost", 9898

sess.on_logon do
  puts "LOGGED ON"
  spawn do
    cl0rdid = Random.rand(1000..2000)
    loop do
      msg = FIX::Message.new FIX::MESSAGE_TYPES[:NewOrderSingle]
      msg.set_field FIX::TAGS[:Price], "%0.2f" % Random.rand(10.0..13.0).to_s
      msg.set_field FIX::TAGS[:OrderQty], Random.rand(100).to_s
      msg.set_field FIX::TAGS[:Symbol], "VOD.L"
      msg.set_field FIX::TAGS[:SecurityID], "GB00BH4HKS39"
      msg.set_field FIX::TAGS[:SecurityIDSource], "4"
      msg.set_field FIX::TAGS[:Account], "TEST"
      msg.set_field FIX::TAGS[:HandlInst], "1"
      msg.set_field FIX::TAGS[:ExDestination], "XLON"
      msg.set_field FIX::TAGS[:Side], Random.rand(1..2).to_s
      msg.set_field FIX::TAGS[:ClOrdID], cl0rdid.to_s
      cl0rdid += 1
      msg.set_field FIX::TAGS[:Currency], "GBP"
      sess.send_msg msg
      sleep 8.seconds
    end
  end
end

sess.to_admin do |msg|
  puts "ADMIN ---->: #{msg.data}"
end

sess.to_app do |msg|
  puts "APP ---->: #{msg.data}"
end

sess.from_admin do |msg|
  puts "ADMIN <----: #{msg.data}"
end

sess.from_app do |msg|
  puts "APP <----: #{msg.data}"
end

sess.on_error do |err|
  puts "ERROR: #{err}"
end

sess.run

Development

  • Repeating groups decoding
  • Encryption
  • Server side

Contributing

  1. Fork it (https://github.com/NeuraLegion/fix/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

  • sekkr1 Dekel - creator, maintainer
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].