an experimental order matching and filling engine in Rust
- Table Of Contents
- About The Project
- Built With
- Getting Started
- Usage
- Testing
- Roadmap
- Contributing
- Authors
This is a simple order matching and filling engine in Rust as an experiment in how Rust handles ownership and lifetimes in a complex and asynchronous process.
Built with Rust 🦀
- Rust
- Cargo
-
Clone the repo
-
Run the tests
cargo test
- Run the application
cargo run
- Build the binary
cargo build
Don't use this in production, please. For experimentation only.
To test the API, cargo run
and then, in another terminal, fire off these curl commands to test post and get requests of the server.
- Create an order
POST /orders
curl -X POST http://127.0.0.1:8080/orders -H "Content-Type: application/json" -d '{"is_buy": true, "price": 100, "quantity": 10, "priority": 1, "owner_id": 123}'
- GET a list of the open orders
GET /orders
# TODO
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with necessary changes.
- Please make sure you check your spelling and grammar.
- Create individual PR for each suggestion.
- Please also read through the Code Of Conduct before posting your first idea as well.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- d7t - - d7t -