biscuit | snapbox | |
---|---|---|
12 | 6 | |
2,406 | 110 | |
1.5% | 1.8% | |
0.0 | 9.4 | |
over 1 year ago | 6 days ago | |
Go | Rust | |
BSD 3-clause "New" or "Revised" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
biscuit
-
Biscuit 3.0
No, it isn't the third release of a POSIX like OS research written in Go,
https://github.com/mit-pdos/biscuit
-
If I know neither Go or Rust, which do I choose to learn first/only?
But there are other brave people exists like biscuit or gopher-os who can do it :)))
-
Pre-Overengineering
That's something I found in doing a bit of a dive on why ripgrep is so fast at doing a very specific kind of string search workload (Gallant / burntsushi / author of ripgrep is an actual wizard and contributes to Rust's regex engines, for reference). I wrote tiny proof of concepts in a variety of languages, all in my same style -- and sometimes my Go variants were as fast as the equivalent Rust/C (even in release / -O3/2 (every once in a blue moon, O3 makes no diff or is a slight regression in some exec paths)). I eventually found something about benchmarks in a related area, leading to this: https://benhoyt.com/writings/count-words/#performance-results-and-learnings. Somebody on the Go sub even linked me to the Biscuit OS: https://pdos.csail.mit.edu/papers/biscuit.pdf, which, tidbit, has Jon Gjengset (Crust of Rust legend) in the contribs list (https://github.com/mit-pdos/biscuit).
-
What is a "CPU Biscuit"?
https://github.com/mit-pdos/biscuit maybe this
-
Rust: A Critical Retrospective
Go has been used to implement OS kernel code, e.g. in the Biscuit OS from MIT: https://github.com/mit-pdos/biscuit
Of course, the garbage collector did not exactly make it easier - but it's an interesting piece of software.
- Can Go be used for kernel development?
- GOLang in embedded systems
-
GOLang in embedded systems (1 physical threads)
https://github.com/mit-pdos/biscuit says 5% slowdown over C. Garbage collection is going to require some more RAM, generally <=2x though.
- Biscuit operating system written in Go
- The difference between Go and Rust
snapbox
-
Announcing diff.rs!
If needed, here is an example of per-word diffing and highlighting of trailing newline differences.
-
Trycmd just ignores my tests
I see. I would try writing the same name as in your Cargo.toml. For example, if yours was toml [package] name = "caesor_cipher" I would try bin.name = "caesor_cipher" It seems that trycmd might ignore a test if the bin.name field is incorrect: https://github.com/assert-rs/trycmd/issues/105
-
Rust: A Critical Retrospective
I find rustdoc lacking for clap. rustdoc does a good job with API reference documentation and is improving in its handling of examples but derive reference and tutorial documentation are a weak point.
For examples, its improving with the example scraping work (e.g. https://docs.rs/clap/latest/clap/struct.ArgMatches.html#meth...) but testing of example is still lacking. I've written trycmd to help (https://github.com/assert-rs/trycmd).
For derive reference and tutorial documentation, your choices are
- A very long, hard to navigate top-level documentation, see https://docs.rs/structopt/latest/structopt/
- External documentation, see https://serde.rs/
- Dummy modules to store your documentation (I've seen this used but can't remember one off the top of my head)
For clap, my documentation examples are best served as programs and we've had a problem with these being broken. The Rust CLI book has a decent strategy for this by pulling in code from external files (https://rust-cli.github.io/book/index.html). I was tempted to do that for clap where example code and output (all verified via trycmd) are pulled into an mdbook site but I've stopped short and just have a README that links out to everything (https://github.com/clap-rs/clap/blob/master/examples/tutoria...). Its not great.
-
Great thanks to the rust community for having a book (sort of like the rust book) for some crates as well. Makes everything infinitely approachable
Another problem we found in clap was it was easy for our examples to build but harder to make sure they worked. This is why I wrote trycmd (example "tests").
-
ANN: `trycmd` v0.7.0 released!
Would love feedback on on some of the known questions or whatever else is on your mind!
-
trycmd: Snapshot testing for a herd of CLI tests
The design is inspired by trybuild with thought given to how mdBook books could pull in content so you can verify a code sample, the command for running it, and the output. In considering how to keep clap's website up-to-date, I had this idea and threw it together to see how well it works. Overall, seems good with room for improvement. I'll have to give this a try on a real world program soon.
What are some alternatives?
Cosmos - Cosmos is an operating system "construction kit". Build your own OS using managed languages such as C#, VB.NET, and more!
clap-rs - A full featured, fast Command Line Argument Parser for Rust
regex-automata - A low level regular expression library that uses deterministic finite automata.
typos - Source code spell checker
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
browser - Create Elm programs that run in browsers!
Harbol - Harbol is a collection of data structures and miscellaneous libraries, similar in nature to C++'s Boost, STL, and GNOME's GLib; it is meant to be a smaller and more lightweight collection of data structures, code systems, and convenience software.
steam-for-linux - Issue tracking for the Steam for Linux beta client
gopher-os - A proof of concept OS kernel written in Go
cargo-public-api - List and diff the public API of Rust library crates between releases and commits. Detect breaking API changes and semver violations via CI or a CLI.
usbarmory - USB armory - The open source compact secure computer
heapless - Heapless, `static` friendly data structures