{"id":35188447,"url":"https://github.com/sandstorm791/flextrace","last_synced_at":"2026-04-16T19:32:11.474Z","repository":{"id":326770392,"uuid":"1106340655","full_name":"sandstorm791/flextrace","owner":"sandstorm791","description":"an ebpf application profiling toolkit","archived":false,"fork":false,"pushed_at":"2025-12-27T21:47:46.000Z","size":103,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-28T14:14:22.388Z","etag":null,"topics":["ebpf","linux","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sandstorm791.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":"2025-11-29T03:57:08.000Z","updated_at":"2025-12-27T21:47:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sandstorm791/flextrace","commit_stats":null,"previous_names":["sandstorm791/flextrace"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sandstorm791/flextrace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandstorm791%2Fflextrace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandstorm791%2Fflextrace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandstorm791%2Fflextrace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandstorm791%2Fflextrace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandstorm791","download_url":"https://codeload.github.com/sandstorm791/flextrace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandstorm791%2Fflextrace/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28110939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-29T02:00:07.021Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ebpf","linux","rust"],"created_at":"2025-12-29T05:23:16.896Z","updated_at":"2026-04-16T19:32:11.462Z","avatar_url":"https://github.com/sandstorm791.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flextrace\nflextrace is an ebpf-powered application profiling toolkit for linux\n\n(minimum kernel version is something pretty modern cause this uses aya mainline until next version is actually released and it has weird verifier issues on older kernels)\n\n#### roadmap:\n\n✅ ability to do basic perf event data gathering based on various hardware and software events, including info about\n  what process triggered it, mostly helpful for big picture info\n\n✅ have a decent command line (will expand it for future features of course)\n\n✅ ability to unwind stack traces using frame pointers (easy)\n\n✅️ clean up the codebase so it can be used as a library\n\n- ability to unwind stack traces using .eh_frame (pain)\n\n- have nice data analytics features\n\n- gui frontend\n\ncurrently only supports amd64 system v abi but hopefully others soon\n\nnothing is production yet lol but hopefully it will be some time\n\n## Prerequisites\n\n1. stable rust toolchains: `rustup toolchain install stable`\n1. nightly rust toolchains: `rustup toolchain install nightly --component rust-src`\n1. (if cross-compiling) rustup target: `rustup target add ${ARCH}-unknown-linux-musl`\n1. (if cross-compiling) LLVM: (e.g.) `brew install llvm` (on macOS)\n1. (if cross-compiling) C toolchain: (e.g.) [`brew install filosottile/musl-cross/musl-cross`](https://github.com/FiloSottile/homebrew-musl-cross) (on macOS)\n1. bpf-linker: `cargo install bpf-linker` (`--no-default-features` on macOS)\n\n## Build \u0026 Run\n\nUse `cargo build`, `cargo check`, etc. as normal. Run your program with:\n\n```shell\ncargo run --release --config 'target.\"cfg(all())\".runner=\"sudo -E\"'\n```\n\nCargo build scripts are used to automatically build the eBPF correctly and include it in the\nprogram.\n\n## Cross-compiling on macOS\n\nCross compilation should work on both Intel and Apple Silicon Macs.\n\n```shell\nCC=${ARCH}-linux-musl-gcc cargo build --package flextrace --release \\\n  --target=${ARCH}-unknown-linux-musl \\\n  --config=target.${ARCH}-unknown-linux-musl.linker=\\\"${ARCH}-linux-musl-gcc\\\"\n```\nThe cross-compiled program `target/${ARCH}-unknown-linux-musl/release/flextrace` can be\ncopied to a Linux server or VM and run there.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandstorm791%2Fflextrace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandstorm791%2Fflextrace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandstorm791%2Fflextrace/lists"}