Code Monkey home page Code Monkey logo

ninjabook's Introduction

ninjabook

Crates.io Documentation MIT licensed Rust

A lightweight and high-performance order-book designed to process level 2 and trades data.

Performance

Ran a couple of benchmarks showcasing real case scenarios against a naive Vec implementation.

The benchmarks are run with 300,000 events of level 2 orderbook data . This data is split in 2 chunks:

  • First 200,000 events are used to warm up.
  • Last 100,000 for the actual benchmark.

The scenarios are tested are:

  • Process event and stream best bid and ask
  • Process event and stream top5 bids and asks

Here are the results:

bench iterations time ns/iter
ninjabook_bbo 100,000 3.9380 ms 39.38 ns
naive_bbo 100,000 263.77 ms 2,637.7 ns
ninjabook_top5 100,000 12.310 ms 123.1 ns
naive_top5 100,000 275.40 ms 2,754.7 ns

Contributing

To add a better version, create a new file, implementing the same methods as orderbook.rs (including tests) and adding to the benchmark optimal_vs_naive. Only order books with better performance than orderbook.rs will be considered. Lastly, add performance logs to the Pull Request, can just copy paste what cargo bench outputs.

Any issues and tests are also welcomed. Feel free to reach out at https://twitter.com/ninjaquant_ if you have any questions.

ninjabook's People

Contributors

ninja-quant avatar

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.