go-sqlite3-stdlib VS octosql

Compare go-sqlite3-stdlib vs octosql and see what are their differences.

go-sqlite3-stdlib

A standard library for mattn/go-sqlite3 including best-effort date parsing, url parsing, math/string functions, and stats aggregation functions (by multiprocessio)

octosql

OctoSQL is a query tool that allows you to join, analyse and transform data from multiple databases and file formats using SQL. (by cube2222)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
go-sqlite3-stdlib octosql
6 34
123 4,703
0.0% -
0.0 1.2
9 months ago 14 days ago
Go Go
GNU General Public License v3.0 or later Mozilla Public License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

go-sqlite3-stdlib

Posts with mentions or reviews of go-sqlite3-stdlib. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-01.
  • SQLite: Past, Present, and Future
    4 projects | news.ycombinator.com | 1 Sep 2022
    Adding user-defined functions to SQLite is not difficult, and the mechanism is quite flexible. You can create extensions and load them when you create the SQLite connection to have the functions available in queries. I wrote a blog post explaining how to do that using Rust, and the example is precisely a `regex_extract` function [0].

    If you need them, you also have a "stdlib" implemented for Go [1] and a pretty extensive collection of extensions [2]

    [0]: https://ricardoanderegg.com/posts/extending-sqlite-with-rust...

    [1]: https://github.com/multiprocessio/go-sqlite3-stdlib

    [2]: https://github.com/nalgeon/sqlean

  • SQLite has pretty limited builtin functions
    3 projects | /r/sqlite | 22 Aug 2022
  • OctoSQL allows you to join data from different sources using SQL
    13 projects | news.ycombinator.com | 14 Jul 2022
    OctoSQL is an awesome project and Kuba has a lot of great experience to share from building this project I'm excited to learn from.

    And while building a custom database engine does allow you to do pretty quick queries, there are a few issues.

    First, the SQL implemented is nonstandard. As I was looking for documentation and it pointed me to `SELECT * FROM docs.functions fs`. I tried to count the number of functions but octosql crashed (a Go panic) when I ran `SELECT count(1) FROM docs.functions fs` and `SELECT count() FROM docs.functions fs` which is what I lazily do in standard SQL databases. (`SELECT count(fs.name) FROM docs.function fs` worked.)

    This kind of thing will keep happening because this project just doesn't have as much resources today as SQLite, Postgres, DuckDB, etc. It will support a limited subset of SQL.

    Second, the standard library seems pretty small. When I counted the builtin functions there were only 29. Now this is an easy thing to rectify over time but just noting about the state today.

    And third this project only has builtin support for querying CSV and JSON files. Again this could be easy to rectify over time but just mentioning the state today.

    octosql is a great project but there are also different ways to do the same thing.

    I build dsq [0] which runs all queries through SQLite so it avoids point 1. It has access to SQLite's standard builtin functions plus* a battery of extra statistic aggregation, string manipulation, url manipulation, date manipulation, hashing, and math functions custom built to help this kind of interactive querying developers commonly do [1].

    And dsq supports not just CSV and JSON but parquet, excel, ODS, ORC, YAML, TSV, and Apache and nginx logs.

    A downside to dsq is that it is slower for large files (say over 10GB) when you only want a few columns whereas octosql does better in some of those cases. I'm hoping to improve this over time by adding a SQL filtering frontend to dsq but in all cases dsq will ultimately use SQLite as the query engine.

    You can find more info about similar projects in octosql's Benchmark section but I also have a comparison section in dsq [2] and an extension of the octosql benchmark with different set of tools [3] including duckdb.

    Everyone should check out duckdb. :)

    [0] https://github.com/multiprocessio/dsq

    [1] https://github.com/multiprocessio/go-sqlite3-stdlib

    [2] https://github.com/multiprocessio/dsq#comparisons

    [3] https://github.com/multiprocessio/dsq#benchmark

  • One year as a solo dev building open-source data tools without funding
    6 projects | news.ycombinator.com | 21 Jun 2022
    Hey Kuba!

    > Especially on the community building aspect, it's really impressive that you've been able to spark so many communities on various platforms (Reddit, GitHub, Discord, etc.)!

    Yeah it's been so cool to see so many people come together, hobbyists and professionals.

    > On a more technical note, since dsq is based on the "load it into SQLite and query it from there" architecture, have you considered integrating with the plugin ecosystems of other existing projects based on that same architecture, like Datasette[0]? It seems like a way to add a lot of value to your tools without much work.

    Interesting idea! I haven't looked into Datasette too much. And I haven't thought about plugins too much either. The most I've done is extend the SQLite standard library [0] and I hope to continue growing that. I'd be curious to hear what specifically people like from Datasette they'd like to see in dsq.

    > On a more commercial note, overall I think tools like this are very hard to monetize, because right now they're just a fairly niche use case, between - as you mentioned - full blown data analytics platforms and observability query systems, as well as standard unix tools. Especially since if you need the analytics a lot, you'll probably have time to integrate it into your preferred analytics solution (like BigQuery). Do you have any thoughts on that?

    My idea was always to focus on smaller and less mature organizations, probably ones that have been around for 10+ years. They aren't using BigQuery, they prefer to host everything themselves, and they don't yet realize there are tools like DataStation that they can easily run to make analytics easier.

    I've worked at a bunch of companies like this so I know the market exists. Actually I have been surprised how many people outside of this market showed up in the DataStation community. I've seen Googlers, MS-ers, modern startups, data science teams show up interested in DataStation compared to what they're already using.

    For me it's just been a matter of time (and funding) to build out the product to serve these communities commercially as a SaaS or enterprise product.

    [0] https://github.com/multiprocessio/go-sqlite3-stdlib

  • Show HN: A standard library for mattn/go-sqlite3
    1 project | news.ycombinator.com | 26 May 2022
  • A standard library for mattn/go-sqlite3 including best-effort date parsing, url parsing, math/string functions, and stats aggregation functions
    1 project | /r/golang | 26 May 2022

octosql

Posts with mentions or reviews of octosql. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-01.
  • Wazero: Zero dependency WebAssembly runtime written in Go
    12 projects | news.ycombinator.com | 1 Jul 2023
    Never got it to anything close to a finished state, instead moving on to doing the same prototype in llvm and then cranelift.

    That said, here's some of the wazero-based code on a branch - https://github.com/cube2222/octosql/tree/wasm-experiment/was...

    It really is just a very very basic prototype.

  • Analyzing multi-gigabyte JSON files locally
    14 projects | news.ycombinator.com | 18 Mar 2023
  • DuckDB: Querying JSON files as if they were tables
    9 projects | news.ycombinator.com | 3 Mar 2023
    This is really cool!

    With their Postgres scanner[0] you can now easily query multiple datasources using SQL and join between them (i.e. Postgres table with JSON file). Something I strived to build with OctoSQL[1] before.

    It's amazing to see how quickly DuckDB is adding new features.

    Not a huge fan of C++, which is right now used for authoring extensions, it'd be really cool if somebody implemented a Rust extension SDK, or even something like Steampipe[2] does for Postgres FDWs which would provide a shim for quickly implementing non-performance-sensitive extensions for various things.

    Godspeed!

    [0]: https://duckdb.org/2022/09/30/postgres-scanner.html

    [1]: https://github.com/cube2222/octosql

    [2]: https://steampipe.io

  • Show HN: ClickHouse-local – a small tool for serverless data analytics
    13 projects | news.ycombinator.com | 5 Jan 2023
    Congrats on the Show HN!

    It's great to see more tools in this area (querying data from various sources in-place) and the Lambda use case is a really cool idea!

    I've recently done a bunch of benchmarking, including ClickHouse Local and the usage was straightforward, with everything working as it's supposed to.

    Just to comment on the performance area though, one area I think ClickHouse could still possibly improve on - vs OctoSQL[0] at least - is that it seems like the JSON datasource is slower, especially if only a small part of the JSON objects is used. If only a single field of many is used, OctoSQL lazily parses only that field, and skips the others, which yields non-trivial performance gains on big JSON files with small queries.

    Basically, for a query like `SELECT COUNT(*), AVG(overall) FROM books.json` with the Amazon Review Dataset, OctoSQL is twice as fast (3s vs 6s). That's a minor thing though (OctoSQL will slow down for more complicated queries, while for ClickHouse decoding the input is and remains the bottleneck).

    [0]: https://github.com/cube2222/octosql

  • Steampipe – Select * from Cloud;
    13 projects | news.ycombinator.com | 30 Sep 2022
    To add somewhat of a counterpoint to the other response, I've tried the Steampipe CSV plugin and got 50x slower performance vs OctoSQL[0], which is itself 5x slower than something like DataFusion[1]. The CSV plugin doesn't contact any external API's so it should be a good benchmark of the plugin architecture, though it might just not be optimized yet.

    That said, I don't imagine this ever being a bottleneck for the main use case of Steampipe - in that case I think the APIs themselves will always be the limiting part. But it does - potentially - speak to what you can expect if you'd like to extend your usage of Steampipe to more than just DevOps data.

    [0]: https://github.com/cube2222/octosql

    [1]: https://github.com/apache/arrow-datafusion

    Disclaimer: author of OctoSQL

  • Go runtime: 4 years later
    11 projects | news.ycombinator.com | 26 Sep 2022
    Actually, folks just use gRPC or Yaegi in Go.

    See Terraform[0], Traefik[1], or OctoSQL[2].

    Although I agree plugins would be welcome, especially for performance reasons, though also to be able to compile and load go code into a running go process (JIT-ish).

    [0]: https://github.com/hashicorp/terraform

    [1]: https://github.com/traefik/traefik

    [2]: https://github.com/cube2222/octosql

    Disclaimer: author of OctoSQL

  • Run SQL on CSV, Parquet, JSON, Arrow, Unix Pipes and Google Sheet
    9 projects | news.ycombinator.com | 24 Sep 2022
  • Beginner interested in learning SQL. Have a few question that I wasn’t able to find on google.
    3 projects | /r/SQL | 6 Aug 2022
    Through more magic, you COULD of course use stuff like Spark, or easier with programs like TextQL, sq, OctoSQL.
  • How I Used DALL·E 2 to Generate The Logo for OctoSQL
    1 project | /r/programming | 2 Aug 2022
    The logo was created for OctoSQL and in the article you can find a lot of sample phrase-image combinations, as it describes the whole path (generation, variation, editing) I went down. Let me know what you think!
  • How I Used DALL·E 2 to Generate the Logo for OctoSQL
    3 projects | news.ycombinator.com | 2 Aug 2022
    Hey, author here, happy to answer any questions!

    The logo was created for OctoSQL[0] and in the article you can find a lot of sample phrase-image combinations, as it describes the whole path (generation, variation, editing) I went down. Let me know what you think!

    [0]:https://github.com/cube2222/octosql

What are some alternatives?

When comparing go-sqlite3-stdlib and octosql you can also consider the following projects:

sqlite-past-present-future - Performance evaluation and optimization of SQLite

duckdb - DuckDB is an in-process SQL OLAP Database Management System

octosql-plugin-postgres

q - q - Run SQL directly on delimited files and multi-file sqlite databases

sqlite-plus - The ultimate set of SQLite extensions

trdsql - CLI tool that can execute SQL queries on CSV, LTSV, JSON, YAML and TBLN. Can output to various formats.

octosql-plugin-random_data - OctoSQL plugin serving random data

sqlitebrowser - Official home of the DB Browser for SQLite (DB4S) project. Previously known as "SQLite Database Browser" and "Database Browser for SQLite". Website at:

mycelite - Mycelite is a SQLite extension that allows you to synchronize changes from one instance of SQLite to another.

sqlite-utils - Python CLI utility and library for manipulating SQLite databases

cargo-semver-checks - Scan your Rust crate for semver violations.

textql - Execute SQL against structured text like CSV or TSV