Skip to content

gsalaz98/roadkill

Repository files navigation

roadkill

Orderbook Event Storage Using TectonicDB

I originally created this with the intention of collecting data to further analyze it in a research environment like I was doing for stocks and crypto (example notebooks: https://github.com/gsalaz98/clifford). Because I have not much use for that data and research anymore, I hope it can help out someone. Maybe I'll return to it in the future.

Project Structure

  • ./alternative/: Never got around to implementing anything there, but it's all data I would love to collect in the future
  • ./bin/: Binaries that got built went here during the development cycle. Feel free to use
  • ./cnc/: Command and control. The idea was to orchestrate various co-allocated hosts for latency purposes
  • ./database/: Deprecated folder -- TectonicDB turned out to be a better fit than relational databases for storage
  • ./exchanges/websockets/: Websocket client implementations in Go
    • fast: Low-latency client implementations
    • slow: Client implementations for various exchanges with no regards to runtime latency
  • ./mathematics/: Deprecated folder. I planned on implementing other mathematical models (like Black-Scholes), but I never needed it.
  • ./orderbook/: Orderbook related methods. NOTE: I used the library ffjson to have faster JSON in Golang. The *_ffjson.go files are autogenerated
    • storage/: Experimentation with ZPAQ and PAQ8PX compression. Not used by anything in this project
    • tectonic/: Golang client implementation for interfacing with TectonicDB. Licensed under GPL3
  • ./playground/: Performance testing and various "playground" activities (babby's first linked-list :))