{"slug": "ragel", "name": "Ragel", "category": "other", "category_name": "Other software", "description": "", "recommenders": 3, "commenters": 3, "warners": 0, "score": 2.137, "rising": 0.35, "first": "2026-01-03", "latest": "2026-08-02", "why": "Plus, Ragel is a joy to program once you get the hang of it.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 1, "compare": 0, "warn": 0}, "spark": [0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Plus, Ragel is a joy to program once you get the hang of it.", "kind": "", "icon": false, "domain": "colm.net", "github_repo": null, "official_url": "https://www.colm.net/open-source/ragel/", "pricing": "", "aliases": ["Ragel"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 786402736, "item_id": 49150171, "url": "https://news.ycombinator.com/item?id=49150171", "by": "quotemstr", "date": "2026-08-02", "version": null, "stance": "recommend", "quote": "Plus, Ragel is a joy to program once you get the hang of it.", "excerpt": "Excellent use of Ragel to generate fast state machines. Everyone should check it out: https://www.colm.net/open-source/ragel/ The author of shitty encoded the whole terminal state machine in Ragel: https://github.com/pg83/shitty/blob/master/parser.rl The thing generates one of big DFA with actions for everything that can ever happen in the terminal. Precisely correct way to do it. Plus, Ragel is a joy to program once", "context": "", "use_case": "generating fast state machines", "switched_from": "", "story": "Show HN: Shitty \u2013 fast terminal. Memory-unsafe and faster than yours"}, {"id": 775823104, "item_id": 48488944, "url": "https://news.ycombinator.com/item?id=48488944", "by": "mananaysiempre", "date": "2026-06-11", "version": null, "stance": "recommend", "quote": "Ragel [2] + Lemon[3] a friendlier if less well-established implementation", "excerpt": "> Flex is one of the commonly used tools as a lexical analyzer. [...] Bison is a syntax analyzer. A valid choice; one might also find re2c[1] or Ragel [2] + Lemon[3] a friendlier if less well-established implementation of essentially the same theory. Moving further away, there\u2019s also ANTLR[4] or spending a week on a hand-coded lexer and parser. > CPU\u2019s parallelism is not utilized in the same way as GPU since differen", "context": "", "use_case": "", "switched_from": "", "story": "Making a Shading Language for My Offline Renderer"}, {"id": 743696608, "item_id": 46481038, "url": "https://news.ycombinator.com/item?id=46481038", "by": "gritzko", "date": "2026-01-03", "version": null, "stance": "recommend", "quote": "I am a big fan of Ragel[1]. That is a high performance parser generator.", "excerpt": "I am a big fan of Ragel[1]. That is a high performance parser generator. In fact, it can generate different types of parsers, very powerful. Unfortunately, it takes a lot of skill to operate. I wrote a parser generator generator to make it all smooth[2], but after 8 years I still can't call it effortless. A colleague of mine once \"broke the internet\" with a Ragel bug. So, think twice. Still, for weekend activities I ", "context": "", "use_case": "parser generation", "switched_from": "", "story": "The C3 Programming Language"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["parser generation", "generating fast state machines"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49149326", "title": "Show HN: Shitty \u2013 fast terminal. Memory-unsafe and faster than yours", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48800026", "title": "Shrimple \u2013 A Simpler, Nicer Markdown", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48444841", "title": "Making a Shading Language for My Offline Renderer", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46478647", "title": "The C3 Programming Language", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {"recommend": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {"recommend": 1}, "2026-07": {"neutral": 1}, "2026-08": {"recommend": 1}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "quotes": [{"id": 786402736, "item_id": 49150171, "url": "https://news.ycombinator.com/item?id=49150171", "by": "quotemstr", "date": "2026-08-02", "version": null, "stance": "recommend", "quote": "Plus, Ragel is a joy to program once you get the hang of it.", "excerpt": "Excellent use of Ragel to generate fast state machines. Everyone should check it out: https://www.colm.net/open-source/ragel/ The author of shitty encoded the whole terminal state machine in Ragel: https://github.com/pg83/shitty/blob/master/parser.rl The thing generates one of big DFA with actions for everything that can ever happen in the terminal. Precisely correct way to do it. Plus, Ragel is a joy to program once", "context": "", "use_case": "generating fast state machines", "switched_from": "", "story": "Show HN: Shitty \u2013 fast terminal. Memory-unsafe and faster than yours"}, {"id": 780819409, "item_id": 48801213, "url": "https://news.ycombinator.com/item?id=48801213", "by": "gritzko", "date": "2026-07-05", "version": null, "stance": "neutral", "quote": "I use Ragel for parser generation btw", "excerpt": "About five years ago I faced the fact no two Markdown implementations are fully compatible. I made StrictMark[1], which is a backwards-compatible Markdown dialect with a formal grammar (I use Ragel for parser generation btw). Takes 5-10 min with LLMs to make any implementation, cause formal grammar is unchanged. I use it, no one else does, which is not an issue cause it is backwards-compatible. GitHub renders it fine", "context": "", "use_case": "parser generation", "switched_from": "", "story": "Shrimple \u2013 A Simpler, Nicer Markdown"}, {"id": 775823104, "item_id": 48488944, "url": "https://news.ycombinator.com/item?id=48488944", "by": "mananaysiempre", "date": "2026-06-11", "version": null, "stance": "recommend", "quote": "Ragel [2] + Lemon[3] a friendlier if less well-established implementation", "excerpt": "> Flex is one of the commonly used tools as a lexical analyzer. [...] Bison is a syntax analyzer. A valid choice; one might also find re2c[1] or Ragel [2] + Lemon[3] a friendlier if less well-established implementation of essentially the same theory. Moving further away, there\u2019s also ANTLR[4] or spending a week on a hand-coded lexer and parser. > CPU\u2019s parallelism is not utilized in the same way as GPU since differen", "context": "", "use_case": "", "switched_from": "", "story": "Making a Shading Language for My Offline Renderer"}, {"id": 743696608, "item_id": 46481038, "url": "https://news.ycombinator.com/item?id=46481038", "by": "gritzko", "date": "2026-01-03", "version": null, "stance": "recommend", "quote": "I am a big fan of Ragel[1]. That is a high performance parser generator.", "excerpt": "I am a big fan of Ragel[1]. That is a high performance parser generator. In fact, it can generate different types of parsers, very powerful. Unfortunately, it takes a lot of skill to operate. I wrote a parser generator generator to make it all smooth[2], but after 8 years I still can't call it effortless. A colleague of mine once \"broke the internet\" with a Ragel bug. So, think twice. Still, for weekend activities I ", "context": "", "use_case": "parser generation", "switched_from": "", "story": "The C3 Programming Language"}]}