{"id":42469208,"url":"https://github.com/proydakov/ihft","last_synced_at":"2026-01-28T09:45:45.210Z","repository":{"id":46044482,"uuid":"266045343","full_name":"proydakov/ihft","owner":"proydakov","description":"Yet another HFT framework","archived":false,"fork":false,"pushed_at":"2025-09-23T18:43:03.000Z","size":1543,"stargazers_count":44,"open_issues_count":0,"forks_count":10,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-23T20:30:34.465Z","etag":null,"topics":["cpp","hft","hpc","linux"],"latest_commit_sha":null,"homepage":"","language":"C++","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/proydakov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-05-22T07:21:37.000Z","updated_at":"2025-07-29T09:11:35.000Z","dependencies_parsed_at":"2024-03-22T14:58:14.880Z","dependency_job_id":"c6a41cb2-fded-4f32-b2b1-ed4f4d80d5fc","html_url":"https://github.com/proydakov/ihft","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/proydakov/ihft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proydakov%2Fihft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proydakov%2Fihft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proydakov%2Fihft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proydakov%2Fihft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/proydakov","download_url":"https://codeload.github.com/proydakov/ihft/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proydakov%2Fihft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28844011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T07:39:25.367Z","status":"ssl_error","status_checked_at":"2026-01-28T07:39:24.487Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["cpp","hft","hpc","linux"],"created_at":"2026-01-28T09:45:44.892Z","updated_at":"2026-01-28T09:45:45.175Z","avatar_url":"https://github.com/proydakov.png","language":"C++","readme":"# IHFT\n\n\u003cspan style=\"display: inline-block;\"\u003e\n\n[![BSD 3 License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/proydakov/ihft/blob/master/LICENSE)\n\u003c/span\u003e\n\n\u003e Life is too short for malloc.\n\nIHFT is microframework \u0026 laboratory for low latency applications.\n\n# System requirements\n\nThe IHFT framework requires:\n\n- modern C++ compiler with -std=20 support (clang16+, gcc11+)\n- cmake build system generator (3.12+)\n- ninja build command line utility (1.10+)\n- modern x64 computer with linux system\n- develop compilation on x64|arm64 macos is also available\n\n# Current building status matrix\n\n| Configuration | Static Runtime | Shared Runtime | ASAN+UBSAN | TSAN |\n| :---: | :---: | :---: | :--: | :--: |\n| Linux(GCC11) | [![Build Status][pass-linux-gcc-x64-static]][ci-linux-gcc-x64-static] | [![Build Status][pass-linux-gcc-x64-shared]][ci-linux-gcc-x64-shared] | [![Build Status][pass-linux-gcc-x64-asan]][ci-linux-gcc-x64-asan] | [![Build Status][pass-linux-gcc-x64-tsan]][ci-linux-gcc-x64-tsan] |\n| Linux(Clang18) | [![Build Status][pass-linux-clang-x64-static]][ci-linux-clang-x64-static] | [![Build Status][pass-linux-clang-x64-shared]][ci-linux-clang-x64-shared] | [![Build Status][pass-linux-clang-x64-asan]][ci-linux-clang-x64-asan] | [![Build Status][pass-linux-clang-x64-tsan]][ci-linux-clang-x64-tsan] |\n| MacOS(Clang15) | - | [![Build Status][pass-macos-x64-shared]][ci-macos-x64-shared] | [![Build Status][pass-macos-x64-asan]][ci-macos-x64-asan] | [![Build Status][pass-macos-x64-tsan]][ci-macos-x64-tsan] |\n\n[pass-linux-gcc-x64-static]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/linux-gcc-x64-static.yml?branch=master\n[pass-linux-gcc-x64-shared]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/linux-gcc-x64.yml?branch=master\n[pass-linux-gcc-x64-asan]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/linux-gcc-x64-asan-ubsan.yml?branch=master\n[pass-linux-gcc-x64-tsan]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/linux-gcc-x64-tsan.yml?branch=master\n[pass-linux-clang-x64-static]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/linux-clang-x64-static.yml?branch=master\n[pass-linux-clang-x64-shared]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/linux-clang-x64.yml?branch=master\n[pass-linux-clang-x64-asan]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/linux-clang-x64-asan-ubsan.yml?branch=master\n[pass-linux-clang-x64-tsan]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/linux-clang-x64-tsan.yml?branch=master\n[pass-macos-x64-shared]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/macos-x64.yml?branch=master\n[pass-macos-x64-asan]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/macos-x64-asan-ubsan.yml?branch=master\n[pass-macos-x64-tsan]: https://img.shields.io/github/actions/workflow/status/proydakov/ihft/macos-x64-tsan.yml?branch=master\n\n[ci-linux-gcc-x64-static]: https://github.com/proydakov/ihft/actions?query=workflow%3Alinux-gcc-x64-static\n[ci-linux-gcc-x64-shared]: https://github.com/proydakov/ihft/actions?query=workflow%3Alinux-gcc-x64\n[ci-linux-gcc-x64-asan]: https://github.com/proydakov/ihft/actions?query=workflow%3Alinux-gcc-x64-asan-ubsan\n[ci-linux-gcc-x64-tsan]: https://github.com/proydakov/ihft/actions?query=workflow%3Alinux-gcc-x64-tsan\n[ci-linux-clang-x64-static]: https://github.com/proydakov/ihft/actions?query=workflow%3Alinux-clang-x64-static\n[ci-linux-clang-x64-shared]: https://github.com/proydakov/ihft/actions?query=workflow%3Alinux-clang-x64\n[ci-linux-clang-x64-asan]: https://github.com/proydakov/ihft/actions?query=workflow%3Alinux-clang-x64-asan-ubsan\n[ci-linux-clang-x64-tsan]: https://github.com/proydakov/ihft/actions?query=workflow%3Alinux-clang-x64-tsan\n[ci-macos-x64-shared]: https://github.com/proydakov/ihft/actions?query=workflow%3Amacos-x64\n[ci-macos-x64-asan]: https://github.com/proydakov/ihft/actions?query=workflow%3Amacosx64-asan-ubsan\n[ci-macos-x64-tsan]: https://github.com/proydakov/ihft/actions?query=workflow%3Amacos-x64-tsan\n\n# Goals\n\n- [x] platform module\n  - [x] set cpu for current thread\n  - [x] set name for current thread\n  - [x] lock memory pages\n  - [x] status for isolcpus, nohz_full, rcu_nocbs\n  - [x] hyper-threading detector\n  - [x] cpu frequency scaling detector\n  - [x] swap detector\n  - [x] transparent huge pages detector\n  - [x] huge page system detector\n  - [x] core to core latency example\n  - [x] platform sysjitter example\n- [x] channel module\n  - [x] one 2 one stream pod data queue\n  - [x] one 2 one stream moveable object queue\n  - [ ] one 2 many stream pod data queue\n  - [ ] one 2 many stream moveable object queue\n  - [x] one 2 each stream pod data queue\n  - [x] one 2 each stream moveable object queue\n  - [ ] batch reader for all moveable object queues\n  - [x] python latency analysis tool\n  - [x] C++20 concepts\n  - [x] documentation with latency histograms\n- [x] memory module\n  - [x] arena allocator\n  - [x] stream fixed pool allocator\n  - [x] page allocator for 4KB pages\n  - [x] huge page allocator for 2MB \u0026 1GB pages\n- [x] timer module\n  - [x] native cpu_counter\n  - [x] native cpu_pause\n- [x] types module\n  - [x] box: placed object ownership\n  - [x] function_ref: non-owning reference to a callable\n  - [x] result: function output or error\n- [x] misc module\n  - [x] simple human-readable TOML config system\n  - [x] sigaction based signal handler\n- [x] logger module\n  - [x] simple client usage\n  - [x] non reliable delivery\n  - [x] smart serializer for input arguments\n  - [x] compile-time formatting pattern check\n  - [x] wait-free implementation\n  - [x] log pount source file and thread info\n  - [ ] std::format as formatting backend\n  - [x] std::source_location as log point source\n  - [x] documentation with pictures\n- [ ] network module\n  - [x] udp demo\n  - [x] multicast demo\n  - [ ] Solarflare demo\n  - [ ] Mellanox demo\n  - [ ] DPDK demo\n- [x] engine module\n  - [x] logical cpu\n  - [x] task assignment\n  - [x] configuration verification\n  - [x] intelligent component loading\n  - [x] documentation with pictures\n- [x] CI\n  - [x] github workflows CI\n  - [x] static binary\n  - [x] Clang support with libc++\n  - [x] GCC support with libstdc++\n  - [x] Catch2 unit tests\n  - [x] address sanitizer\n  - [x] thread sanitizer\n  - [x] ub sanitizer\n  - [ ] clang format\n- [x] DevOps\n  - [x] script for system latency optimization\n\n# Docs\n\n[Analytics](analytics/README.md)\n\n[Channel](channel/README.md)\n\n[Compiler](compiler/README.md)\n\n[Constant](constant/README.md)\n\n[Engine](engine/README.md)\n\n[Memory](memory/README.md)\n\n[Misc](misc/README.md)\n\n[Platform](platform/README.md)\n\n[Types](types/README.md)\n\n# Dev Links\n\n[C++ reference](https://en.cppreference.com/w/)\n\n[Compiler Explorer](https://godbolt.org)\n\n[Compiler Flags and Options](https://caiorss.github.io/C-Cpp-Notes/compiler-flags-options.html)\n\n[Agner Fog’s instruction tables](https://agner.org/optimize/instruction_tables.pdf)\n\n[Benchmarking tips](https://llvm.org/docs/Benchmarking.html)\n\n[WikiChip CPU information](https://en.wikichip.org/wiki/WikiChip:welcome)\n\n[Intel hardware information](https://ark.intel.com)\n\n[AMD hardware information](https://www.amd.com/en/products/processors/server/epyc.html)\n\n[Intel Intrinsics Guide](https://software.intel.com/sites/landingpage/IntrinsicsGuide/)\n\n[LLVM Machine Code Analyzer](https://llvm.org/docs/CommandGuide/llvm-mca.html)\n\n[LLVM Machine Instruction Benchmark](https://llvm.org/docs/CommandGuide/llvm-exegesis.html)\n\n[LIKWID tools](https://github.com/RRZE-HPC/likwid/wiki)\n\n[OpenOnload is a user-level network stack](https://github.com/Xilinx-CNS/onload)\n\n[DPDK Accelerating Network Performance](https://www.dpdk.org)\n\n[TOML config file format](https://toml.io/en/)\n\n# DevOps Links\n\n[Osnoise tracer](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/trace/osnoise-tracer.rst/)\n\n[Disable cpu frecuency scaling](https://nixcp.com/disable-cpu-frecuency-scaling/)\n\n[Eric Rigtorp Low Latency Tuning](https://rigtorp.se/low-latency-guide/)\n\n[Red Hat Enterprise Linux-7 Low Latency Tuning](https://access.redhat.com/sites/default/files/attachments/201501-perf-brief-low-latency-tuning-rhel7-v2.1.pdf)\n\n[Red Hat Enterprise Linux-7 Performance Tuning Guide](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/pdf/performance_tuning_guide/Red_Hat_Enterprise_Linux-7-Performance_Tuning_Guide-en-US.pdf)\n\n# People\n\n[Erik Rigtorp personal blog](https://rigtorp.se)\n\n[Martin Thompson mechanical sympathy](https://mechanical-sympathy.blogspot.com)\n\n[Raymond Chen oldnewthing](https://devblogs.microsoft.com/oldnewthing/)\n\n[Daniel Lemire's blog](https://lemire.me/blog/)\n\n# Projects\n\n[LMAX Disruptor](https://lmax-exchange.github.io/disruptor/)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproydakov%2Fihft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproydakov%2Fihft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproydakov%2Fihft/lists"}