[](https://github.com/d-e-s-o/bpflint/actions/workflows/test.yml)
[](https://crates.io/crates/bpflint)
[](https://docs.rs/bpflint)
bpflint
=======
- [Library documentation][docs-rs]
- [Library changelog](CHANGELOG.md)
Linting functionality for BPF C kernel programs. The Linux kernel's BPF
sub-system is continuously being improved and certain patterns
recommended in the past may no longer be state-of-the-art today.
Similarly, some "foot guns" exist that by definition may not be obvious
to new comers.
**bpflint** contains a linter for BPF C kernel programs that accepts
such a `.bpf.c` file as input and scans it for such known issues,
pointing them out and providing recommendations on how to fix them.
Provided is a Rust library, a [command line interface](cli/), as well as
[Web UI](https://d-e-s-o.github.io/bpflint/) for linting of BPF C
program.
### 📚 Frequently Asked Questions (FAQ)
#### ❓ **Q: Why are there so few lints?**
**A:** This repository provides basic infrastructure components to build
on, but we hope for contributions from the community for best
practices and how to formalize them.
#### ❓ **Q: I am interested in helping out. How can I get started?**
**A:** We have a list of [issues](https://github.com/d-e-s-o/bpflint/issues)
with ideas for contributions, which mark a good starting point.
For documentation on lints specifically and how to add a new one,
please check out the [lints/](lints/) sub-directory. All other
questions are probably best asked in one of the existing issues
(or a new one).
[docs-rs]: https://docs.rs/bpflint/latest