{"id":24865509,"url":"https://github.com/kfl/ebpf-tools","last_synced_at":"2025-09-08T13:38:36.464Z","repository":{"id":66768389,"uuid":"449639106","full_name":"kfl/ebpf-tools","owner":"kfl","description":"Experiments with eBPF bytecode","archived":false,"fork":false,"pushed_at":"2024-02-25T08:53:52.000Z","size":62,"stargazers_count":3,"open_issues_count":8,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-02-25T09:38:50.000Z","etag":null,"topics":["ebpf","hacktoberfest","haskell"],"latest_commit_sha":null,"homepage":"","language":"Haskell","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/kfl.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2022-01-19T10:07:16.000Z","updated_at":"2024-01-29T11:32:17.000Z","dependencies_parsed_at":"2024-02-25T09:35:53.721Z","dependency_job_id":null,"html_url":"https://github.com/kfl/ebpf-tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfl%2Febpf-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfl%2Febpf-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfl%2Febpf-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfl%2Febpf-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kfl","download_url":"https://codeload.github.com/kfl/ebpf-tools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236600319,"owners_count":19175173,"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","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","hacktoberfest","haskell"],"created_at":"2025-01-31T23:59:59.415Z","updated_at":"2025-02-01T00:00:00.299Z","avatar_url":"https://github.com/kfl.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"eBPF Tools\n==========\n\nFramework for allowing easy experimentation with eBPF byte-code.\n\nThe project can be used both as a library for working with eBPF\nbyte-code, and it comes with a command-line program that can be as an\nassembler and (eventually) a disassembler.\n\n\nBuild instructions\n------------------\n\nBuild with:\n\n    $ cabal build\n\n\nAs a library\n------------\n\nThe project consists of a number of modules:\n\n * [`Ebpf.Asm`](./src/Ebpf/Asm.hs) types for representing AST for eBPF programs.\n * [`Ebpf.AsmParser`](./src/Ebpf/AsmParser.hs) parser for a textual format of eBPF bytecode.\n * [`Ebpf.Decode`](./src/Ebpf/Decode.hs) reading bytecode into an AST (incomplete).\n * [`Ebpf.Encode`](./src/Ebpf/Encode.hs) encoding the AST to bytecode.\n * [`Ebpf.Helpers`](./src/Ebpf/Helpers.hs) helper functions for building AST.\n * [`Ebpf.Display`](./src/Ebpf/Display.hs) for user-facing printing of the AST.\n\n\n\nCommand-line executable\n-----------------------\n\n```\n$ cabal exec -- ebpf-tools --help\nUsage: ebpf-tools ((-a|--assemble) | (-d|--disassemble) | --dump)\n                  [-o|--output OUTFILE] INFILE\n\n  Assembler and disassembler for eBPF bytecode\n\nAvailable options:\n  -a,--assemble            Parse asm file and write bytecode to output\n  -d,--disassemble         Parse bytecode file and write assembly to output\n  --dump                   Parse asm file and print an AST\n  -o,--output OUTFILE      Write output to OUTFILE (writes to stdout if not\n                           given)\n  -h,--help                Show this help text\n```\n\n\neBPF Resources\n--------------\n\nSee\n\n* \u003chttps://ebpf.io\u003e\n\n* [Linux documentation for the eBPF instruction\n  set](https://www.kernel.org/doc/Documentation/networking/filter.txt)\n\n* [Instruction set\n  reference](https://github.com/iovisor/bpf-docs/blob/master/eBPF.md)\n\n* [ubpf: User-space eBPF VM](https://github.com/iovisor/ubpf/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkfl%2Febpf-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkfl%2Febpf-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkfl%2Febpf-tools/lists"}