1 unstable release
Uses new Rust 2024
new 0.1.0 | May 1, 2025 |
---|
#3 in #rowan
97 downloads per month
Used in bytebraise
130KB
3.5K
SLoC
bytebraise
This project is a proof-of-concept experiment to see how much of BitBake can be implemented in Rust.
Status
This is very early code and still somewhat a testbed for ideas.
What is implemented
- Lexer and parser for the BitBake language, backed by Rowan
- Partial re-implementation of
DataSmart
- Notably lacking: caching, variable history, and the new
:
override syntax
- Notably lacking: caching, variable history, and the new
- Proof-of-concept Python support - enable with the
python
feature when building
FAQ
Q: Do you intend to replace BitBake?
A: Definitely not.
Q: Then why build this?
A: Mostly just to see if it's possible and as an exercise to learn Rust. I also wanted a deeper understanding of BitBake, and what better way to get that than by reimplementing it?
Q: What could it be used for?
A: Right now, not much. Eventually, it could be useful for linters and formatters. What's especially nice about Rust is that you can build statically-linked executables and thus avoid the nightmare of distributing Python applications. Do however note that it's not currently feasible to statically-link applications using bytebraise's optional python
support, due to this issue.
License
bytebraise is licensed under the GNU General Public License version 2.0. See LICENSE.GPL-2.0-only for further details.
Portions of this work have been derived from Rust Analyzer, which is MIT licensed. Those derived portions are clearly marked at the top of the files. The MIT license is included (LICENSE.MIT) for your reference.
Disclaimer
This is not an official Agilent product. No support is implied.
Dependencies
~4MB
~74K SLoC