Replies: 1 comment
|
Anything you'd want to contribute would be awesome. I'm glad you got real-word value out of it. I love hearing stories like yours :) Real-world examples like CANbus I think would be great. Some kind of demo application might be helpful in that case because it's great if people can play with examples. But if it's just a parser that's not wired to anything then that would be great too. With regards to keeping Rust support, yes I'm planning on that now. It is much easier for me to casually maintain Ragel now that agentic coding is available. I can drop in and make improvements without needing to spend my entire weekend doing it. Just a few hours here and there. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hey there! I'm a long time fan of Ragel. I think I wrote my first parser in 2018, and I've been writing parsers for just about everything ever since. I don't know how many lines of Ragel code I have accumulated over the years, but it's a lot! It has been especially useful for embedded devices, where partial reads are very common.
Now that Rust support is back (to stay this time I hope☺️ ), I was looking through the examples and noticed that they are all a bit dated now. Some of them could probably be tweaked for clarity, and maybe there is room to add new examples that showcase interesting ideas.
day = 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' | 'Sat' | 'Sun';{0,1024}to showcase how stricter parser definitions can prevent buffer overflowsstr_lenas an argument to avoidstrlen,%%{ write first_final; }%%?While I was going through the examples, I was thinking about applications where Ragel made a real impact for me personally. CANbus/modbus/RS232, SPI, Hayes AT commands, TMCL (stepper motor protocol) has all been a joy to parse with Ragel, but those might be very domain specific. Sub-parsers with
fcallhas also been life-changing. One project used Ragel as a state machine rather than a parser to verify that the application could not end up in a broken state. I don't work with embedded devices any more, now I'm parsing ethernet network traffic instead, but it's still a joy to work with.In any case, I'd love to contribute to this amazing project, and if I can help by writing new/updated examples, I'd be happy to!
All reactions