|Fast Parse||Kaitai Struct|
|2 months ago||2 months ago|
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.
-🎄- 2021 Day 18 Solutions -🎄-
144 projects | reddit.com/r/adventofcode | 17 Dec 2021
Mostly a mess of pattern matching. I really need to make some generic tree utilities. Haven't been able to find a decent parser combinator that works in Scala 3 (I usually use fastparse which depends heavily on Scala 2 macros, and scala-parser-combinators works in Scala 3, but I've had a lot of trouble getting it to not be too greedy), so I used the state monad from cats to parse at the bottom of the file, which I think turned out fairly nice.
Parser generators vs. handwritten parsers: surveying major languages in 2021
11 projects | news.ycombinator.com | 21 Aug 2021
Agreed! I would say that parser combinators are the sweet spot and the right choice in most cases.
Scala has them as well, e.g.: https://com-lihaoyi.github.io/fastparse/
And the good thing is, you don't have to learn a completely new language/syntax, you can use the host language's syntax and you have full IDE support as well.
Fq: Jq for Binary Formats
19 projects | news.ycombinator.com | 22 Dec 2021
Just opened the game after not playing it for 5 days and it had me reset all my settings! So I'm doing something about it!
1 project | reddit.com/r/battlefield2042 | 8 Dec 2021
Here's a screenshot of Kaitai Struct - an online tool to declaratively describe binary files and generate parsers for them!
Awesome Penetration Testing
124 projects | dev.to | 6 Oct 2021
Anybody here use or have thoughts on Ragel?
2 projects | reddit.com/r/embedded | 1 Oct 2021
If you are looking for parsing specifically, there is a topic called parser combinators which may be worth looking into. I have also heard good things about Kaitai, but have never used it personally.
construct-js: A library for creating byte level data structures
Have you heard of https://kaitai.io ?
The KDL Document Language
11 projects | news.ycombinator.com | 13 Sep 2021
Are there any libraries for defining and generating code for byte- or bit- aligned messaging or packet formats?
2 projects | reddit.com/r/cpp | 6 Sep 2021
Kaitai Struct is really good for reading arbitrary formats, but unfortunately cannot write. Also has been a while since the last update there...
Binary data parsing in go
1 project | reddit.com/r/golang | 27 Aug 2021
Although the Go language backend is kind of unsupported and dead, you should go write your parser using https://kaitai.io/ and then port the result. It will teach you a lot about how to structure binary parsers safely and with a clean structure.
Deserializing Binary Data Files in Rust
4 projects | news.ycombinator.com | 28 Jun 2021
For such a problem, I really recommend https://kaitai.io/
From their website:
> Kaitai Struct is a declarative language used to describe various binary data structures, laid out in files or in memory: i.e. binary file formats, network stream packet formats, etc.
They even have a Rust interface: https://github.com/kaitai-io/kaitai_struct_rust_runtime
Elfcat: Visualize ELF Binaries
5 projects | news.ycombinator.com | 22 Jun 2021
> Or maybe even a generic tool that can take in descriptions of binary formats
Kaitai  isn't perfect, but maybe suits your needs.
What are some alternatives?
csvkit - A suite of utilities for converting to and working with CSV, the king of tabular file formats.
Scala Parser Combinators - simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module
Parboiled2 - A macro-based PEG parser generator for Scala 2.10+
rizin - UNIX-like reverse engineering framework and command-line toolset.
PDFMiner - Python PDF Parser (Not actively maintained). Check out pdfminer.six.
atto - friendly little parsers
Scopt - command line options parsing for Scala
tablib - Python Module for Tabular Datasets in XLS, CSV, JSON, YAML, &c.
Camelot - A Python library to extract tabular data from PDFs
Protobuf - Protocol Buffers - Google's data interchange format
borb - borb is a library for reading, creating and manipulating PDF files in python.