2 releases
0.1.3 | Apr 14, 2023 |
---|---|
0.1.2 | Jul 31, 2022 |
#607 in Programming languages
250KB
6.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
This project is licensed under the MIT license.
Some portions have been adapted from Rust Analyzer, which is also MIT licensed.
Disclaimer
This is not an official Agilent product. No support is implied.
Dependencies
~8–16MB
~194K SLoC