kaitai-io / kaitai_struct

Kaitai Struct: declarative language to generate binary data parsers in C++ / C# / Go / Java / JavaScript / Lua / Nim / Perl / PHP / Python / Ruby
https://kaitai.io
3.97k stars 192 forks source link

Offering assisstance #308

Closed arekbulski closed 6 years ago

arekbulski commented 6 years ago

I am the current developer of Construct library. I took it over in 2016 and since then, the project has flourished to a point where its pretty much done and perfect. I am looking a for a new project to participate in or even take over if needed.

I would ask that you point me to what I can do for the project. You can also consider giving me write access to repository.

GreyCat commented 6 years ago

That's perfect!

Currently, we have a short term goal — publishing v0.8, which is more or less ready to ship.

After that, our mid- and long-term goals could be broadly separated into several categories:

Tell me what you have in mind and what are you more inclined with?

arekbulski commented 6 years ago

I would be willing to check these first:

Something that has to do with me being Construct developer:

The whole reason why I looked at Kaitai was because I read this article. Author was very generous in words towards Construct for its tuorials but its performance was even below feasibility. https://pythonistac.wordpress.com/2017/03/09/python-network-packet-dissection-frameworks-shootout-scapy-vs-construct-vs-hachoir-vs-kaitai-struct/

Bottom line is, I would like to improve Construct by getting its performance closer to Kaitai and at same time improve Kaitai by getting its features closer to Construct. Currently I am working on cythonizing Construct to improve its performance (substantially, 10-100x goal). Thank you very much for your breakdown post. Its very useful and I appreciate it.

KOLANICH commented 6 years ago

104

arekbulski commented 6 years ago

104 made me laugh, thanks Kolanich. :laughing:

GreyCat commented 6 years ago

writing easy to follow tutorials before cookbook recipies, Construct has a superb tutorial imho

I guess you're right, you're more than welcome to take a shot ;)

Python code generation overall

Sure, that would be nice to have someone who's proficient in Python to take a look :)

test suite, Construct has a huge test suite that made it close to bug free

We also have fairly large test suite that we support for all languages: http://kaitai.io/ci/ There's also some long-term plan to implement language-neutral way to write assertions that should make it much easier to implement new languages support for KS.

I had and used substream implementation myself but dropped it because performance is not even a goal in Construct, believe it or not, it doesnt not even have any benchmarks.

Cool ;) But remember that we'll need that not only for Python, but for all other 10 languages as well? ;)

The whole reason why I looked at Kaitai was because I read this article

I've seen that article, and I'm not so sure about benchmarking methods that author used — i.e. why Python, why not multi-threaded, etc, etc?

arekbulski commented 6 years ago

I am currently working on Construct (cythonizing it), so it should take me a week or two. Then I would like to do the same to Kaitai. Posted the proposal in #311 .