Sorry if it's a dumb question but I skimmed the docs and sample and it looks similar + didn't see any mention:
Sorry if it's a dumb question but I skimmed the docs and sample and it looks similar + didn't see any mention:
From a technical design point of view, ROAPI authors owns the full stack end to end from query parsing, data format parsing to query execution because I am also a maintainer of Apache arrow and it's sub-project datafusion. The whole project is built with Rust end to end from scratch. Datasette is mostly a wrapper around sqlite. It translates user actions into SQL queries, then execute them on sqlite. In ROAPI, we work at a lower level. We translate REST APIs, GraphQL and SQLs into datafusion logical plans and execute them. Datafusion is also a analytical compute engine optimized for columnar data, so it will be a lot faster for OLAP workload, while sqlite is optimized for OLTP. I also plan to add other type of query capabilities like nearest neighbor vector search for ML applications, etc.
I'm not in the Data Science space so I only know of Datasette, but maybe worth copy-pasting that on a FAQ page under "How does ROAPI compare to X?" to avoid repeating it.
It does take a few more commands to start a ClickHouse server, create table and load data in... a friendly loader program could probably get pretty close to Roapi interface.
Both Roapi and Datafusion look very cool! Excited to learn about them.
You can load data into MergeTree table that support streaming data ingestion or into Memory table (that is read/write as well).
Also you can run queries on the data without any preprocessing (with `file`, `url` table functions or similar).
See also https://clickhouse.com/docs/en/operations/utilities/clickhou...
https://docs.datasette.io/en/stable/ecosystem.html#sqlite-utils
"Insert data into a SQLite database from JSON, CSV or TSV, automatically creating tables with the correct schema or altering existing tables to add missing columns."There's a bunch of plugins (mix of official and user-developed) that might add other formats too, I'm not 100% sure: