nearley
Crate
Our great sponsors
nearley | Crate | |
---|---|---|
3 | 6 | |
3,548 | 3,955 | |
- | 1.4% | |
0.0 | 9.9 | |
8 months ago | 7 days ago | |
JavaScript | Java | |
MIT 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.
nearley
-
Writing a C compiler in 500 lines of Python
While I suspect I would learn more writing a tokenizer and parsing logic myself I find grammars much easier to read and maintain.
ANTLR is pretty good and is supported across several languages and something I had previously used for some quick Elasticsearch query syntax munging in Python. It also means you can often start from an already existing grammar.
The JS version of ANTLR didn't seem to work for me so for the SQL/JSONPath stuff ended up using the Moo lever and Nearly parser which was rather pleasant. https://nearley.js.org
- Parser generators vs. handwritten parsers: surveying major languages in 2021
-
Applicative Parsing
Parsers in nearley.js [1] are written in a very readable EBNF-like DSL; then they get desugared down to a JS file that's a lot like your snippet.
[1] https://github.com/kach/nearley
Crate
- FLaNK AI - 01 April 2024
-
Creating an advanced search engine with PostgreSQL
I'm wondering if CrateDB [https://github.com/crate/crate] could fit your use case.
It's a relational SQL database which aims for compatibility with PostgreSQL. Internally it uses Lucene as a storage and such can offer fulltext functionality which is exposed via MATCH.
-
Distributed query execution in CrateDB: What you need to know
A logical execution plan does not take into account the information about data distribution. CrateDB is a distributed database and data is sharded: a table can be split into many parts - so-called shards. Shards can be independently replicated and moved from one node to another. The number of shards a table can have is specified at the time the table is created.
- Parser generators vs. handwritten parsers: surveying major languages in 2021
-
Querying time series data with SQL: examples
PD: If you liked this post... We'd really appreciate a ⭐️ in Github!
-
What is CrateDB? 🤔 FAQ
But there's nothing better than trying things by yourself... So Download CrateDB, experiment, and tell us what you think! 😁
What are some alternatives?
PEG.js - PEG.js: Parser generator for JavaScript
Presto - The official home of the Presto distributed SQL query engine for big data
Jison - Bison in JavaScript.
OrientDB - OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries.
Chevrotain - Parser Building Toolkit for JavaScript
MapDB - MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine.
markdown-it - Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
jOOQ - jOOQ is the best way to write SQL in Java
xml2js - XML to JavaScript object converter.
Flyway - Flyway by Redgate • Database Migrations Made Easy.
parse5 - HTML parsing/serialization toolset for Node.js. WHATWG HTML Living Standard (aka HTML5)-compliant.
sql2o - sql2o is a small library, which makes it easy to convert the result of your sql-statements into objects. No resultset hacking required. Kind of like an orm, but without the sql-generation capabilities. Supports named parameters.