{"id":16559407,"url":"https://github.com/anders94/matcherd","last_synced_at":"2026-03-18T20:30:50.344Z","repository":{"id":149692775,"uuid":"497205960","full_name":"anders94/matcherd","owner":"anders94","description":"A replicated in-memory order matcher written in C++","archived":false,"fork":false,"pushed_at":"2022-06-03T15:23:36.000Z","size":47,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-14T12:44:23.824Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anders94.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-28T03:51:00.000Z","updated_at":"2024-01-16T05:50:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"9445dfb5-6b84-4ad6-98a8-74fa820d021e","html_url":"https://github.com/anders94/matcherd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anders94/matcherd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anders94%2Fmatcherd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anders94%2Fmatcherd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anders94%2Fmatcherd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anders94%2Fmatcherd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anders94","download_url":"https://codeload.github.com/anders94/matcherd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anders94%2Fmatcherd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30150413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T21:15:50.531Z","status":"ssl_error","status_checked_at":"2026-03-05T21:15:11.173Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T20:25:53.568Z","updated_at":"2026-03-05T21:31:52.961Z","avatar_url":"https://github.com/anders94.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# matcherd\n\nAn in-memory order matcher written in C++ and (eventually) replicated through RAFT.\n\n## How it Works\n\n`matcherd` attempts to connect to Redis and `BLPOP` orders from a named list.\nOrders are submitted to `matcherd` by pushing them onto the Redis list using\n`RPUSH`. They are in the pipe deliniated format [id]|[side]|[price]|[volume]\nand only include integers. (decimal precision is added externally) Example:\n\n```4256|B|2800|419```\n\nIn this case, order ID 4256 is placing a Buy order at 2800 for 419 units.\n\nInternally, there is a map for buys and a map for sells. The keys are the price\nand the values are queues of all the offers for that price in oldest to newest\norder. Offers get removed from the front of the queue and new orders are added\nto the end.\n\n## Getting Started\n\nThese instructions will get you a copy of `matcherd` up and running on your local\nmachine for development and testing purposes.\n\n### Prerequisites\n\nThis project has several requirements.\n\n* **Redis 4.0 and above** - found at [https://redis.io](https://redis.io)\n\n* **C++ Compiler** - needs to support at least the **C++17** standard, i.e. *MSVC*,\n*GCC*, *Clang*\n\n\u003e ***Note:*** *You also need to be able to provide ***CMake*** a supported\n[generator](https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html).*\n\n### Installing\n\nClone the project from [GitHub](https://github.com/anders94/matcherd) or\n[generate a new repository from it](https://github.com/anders94/matcherd/generate)\n(also on **GitHub**).\n\nIf you wish to clone the repository, rather than generate from it, you simply need\nto run:\n\n```bash\ngit clone https://github.com/anders94/matcherd/\n```\n\n## Building the project\n\nTo build the project:\n\n```bash\nmkdir build/ \u0026\u0026 cd build/\ncmake .. -DCMAKE_INSTALL_PREFIX=/usr/local\ncmake --build . --target install\n```\n\n\u003e ***Note:*** *The custom ``CMAKE_INSTALL_PREFIX`` can be omitted if you wish to\ninstall in [the default install location](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html).*\n\n## Running the tests\n\nBy default, the template uses [Google Test](https://github.com/google/googletest/)\nfor unit testing. Unit testing can be disabled in the options, by setting the\n`ENABLE_UNIT_TESTING` (from\n[cmake/StandardSettings.cmake](cmake/StandardSettings.cmake)) to be false. To run\nthe tests, simply use CTest, from the build directory, passing the desire\nconfiguration for which to run tests for. An example of this procedure is:\n\n```bash\ncd build          # if not in the build directory already\nctest -C Release  # or `ctest -C Debug` or any other configuration you wish to test\n\n# you can also run tests with the `-VV` flag for a more verbose output (i.e.\n#GoogleTest output as well)\n```\n\n### End to end tests\n\nIf applicable, should be presented here.\n\n### Coding style tests\n\nIf applicable, should be presented here.\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on how you can\nbecome a contributor and the process for submitting pull requests to us.\n\n## Authors\n\n* **Anders Brownworth** - [@anders94](https://github.com/anders94)\n\n## License\n\nThis project is licensed under the [MIT License](https://mit-license.org) - see the\n[LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanders94%2Fmatcherd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanders94%2Fmatcherd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanders94%2Fmatcherd/lists"}