Making SQLite extensions pip install-able

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

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
  • sqlite-xsv

    the fastest CSV SQLite extension, written in Rust

  • sqlite-fastrand

    A SQLite extension for quickly generating random numbers, booleans, characters, and blobs

  • 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.

    InfluxDB logo
  • sqlite-ulid

    A SQLite extension for generating and working with ULIDs

  • sqlite-jsonschema

    A SQLite extension for validating JSON objects with JSON Schema

  • sqlite-regex

    A fast regular expression SQLite extension, written in Rust

  • sqlite-url

    A SQLite extension for parsing, generating, and querying URLs and query strings

  • sqlite-http

    A SQLite extension for making HTTP requests purely in SQL

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • sqlite-lines

    A SQLite extension for reading large files line-by-line (NDJSON, logs, txt, etc.)

  • sqlite-path

    A SQLite extension for parsing, generating, and querying paths

  • sqlite-html

    A SQLite extension for querying, manipulating, and creating HTML elements.

  • sqlite-plus

    The ultimate set of SQLite extensions

  • Author here, happy to answer questions!

    Simon already gave a great intro to my SQLite extensions, and I just want to point folks to Anton Zhiyanov's sqlean project, for pure-C extensions: https://github.com/nalgeon/sqlean

    Also, some of these extensions are also packaged as Datasette plugins, so you can also run `datasette install datasette-sqlite-regex` or `datasette install datasette-sqlite-ulid` to add these extension to your Datasette instances! https://docs.datasette.io/en/stable/plugins.html

  • cr-sqlite

    Convergent, Replicated SQLite. Multi-writer and CRDT support for SQLite

  • It's possible but very difficult. For extensions built purely in C, you can statically compile extensions into a SQLite WASM build, which I have a few demos of with sqlite-lines [0] and sqlite-path[1].

    For extensions but in Rust however, it's much more difficult. Matt @tantaman has some success cross compiling his cr-sqlite [2] project to WASM, but it's quite complex.

    SQLite extensions typical rely on dlopen() to load dynamic libraries as an extension. WASM doesn't really have that, so you either have to statically compile your extension in your WASM build (which is difficult for non-C languages bc SQLite is written in C), or hack around some barely-supported WASM features that emulate dlopen(). Though I'm not the best with WASM, so hopefully someone with more WASM experience chimes in to help! It's something I'm tracking in this issue for the `sqlite-loadble-rs` project [3]

    [0] https://observablehq.com/@asg017/introducing-sqlite-lines#ce...

    [1] https://observablehq.com/@asg017/introducing-sqlite-path#cel...

    [2] https://github.com/vlcn-io/cr-sqlite

    [3] https://github.com/asg017/sqlite-loadable-rs/issues/5

  • sqlite-loadable-rs

    A framework for writing fast and performant SQLite extensions in Rust

  • It's possible but very difficult. For extensions built purely in C, you can statically compile extensions into a SQLite WASM build, which I have a few demos of with sqlite-lines [0] and sqlite-path[1].

    For extensions but in Rust however, it's much more difficult. Matt @tantaman has some success cross compiling his cr-sqlite [2] project to WASM, but it's quite complex.

    SQLite extensions typical rely on dlopen() to load dynamic libraries as an extension. WASM doesn't really have that, so you either have to statically compile your extension in your WASM build (which is difficult for non-C languages bc SQLite is written in C), or hack around some barely-supported WASM features that emulate dlopen(). Though I'm not the best with WASM, so hopefully someone with more WASM experience chimes in to help! It's something I'm tracking in this issue for the `sqlite-loadble-rs` project [3]

    [0] https://observablehq.com/@asg017/introducing-sqlite-lines#ce...

    [1] https://observablehq.com/@asg017/introducing-sqlite-path#cel...

    [2] https://github.com/vlcn-io/cr-sqlite

    [3] https://github.com/asg017/sqlite-loadable-rs/issues/5

  • pdftk-heroku

    PDFTK binaries for Heroku

  • If you have the binary all ready, you could mimic this ancient gem that bundles pdftk binaries (for use with heroku):

    https://github.com/charliemaffitt/pdftk-heroku

    But I think it might be possible to leverage gem compile, maybe even with extensions for cross compiling.

    You'd need to specify the platform to match your binaries, and those as files (for extensions) or binaries (for executables you want added to path).

    https://github.com/luislavena/gem-compiler

    https://github.com/rake-compiler/rake-compiler-dock

    AFAIK when a gem is compiled, a makefile or a rake-file is invoked - and can be made to do just about anything. Add some ruby in the gemspec - and it should be possible to distribute almost anything as a platform specific gem.

  • gem-compiler

    A RubyGems plugin that generates binary gems

  • If you have the binary all ready, you could mimic this ancient gem that bundles pdftk binaries (for use with heroku):

    https://github.com/charliemaffitt/pdftk-heroku

    But I think it might be possible to leverage gem compile, maybe even with extensions for cross compiling.

    You'd need to specify the platform to match your binaries, and those as files (for extensions) or binaries (for executables you want added to path).

    https://github.com/luislavena/gem-compiler

    https://github.com/rake-compiler/rake-compiler-dock

    AFAIK when a gem is compiled, a makefile or a rake-file is invoked - and can be made to do just about anything. Add some ruby in the gemspec - and it should be possible to distribute almost anything as a platform specific gem.

  • rake-compiler-dock

    Easy to use and reliable cross compiler environment for building Windows, Linux, Mac and JRuby binary gems.

  • If you have the binary all ready, you could mimic this ancient gem that bundles pdftk binaries (for use with heroku):

    https://github.com/charliemaffitt/pdftk-heroku

    But I think it might be possible to leverage gem compile, maybe even with extensions for cross compiling.

    You'd need to specify the platform to match your binaries, and those as files (for extensions) or binaries (for executables you want added to path).

    https://github.com/luislavena/gem-compiler

    https://github.com/rake-compiler/rake-compiler-dock

    AFAIK when a gem is compiled, a makefile or a rake-file is invoked - and can be made to do just about anything. Add some ruby in the gemspec - and it should be possible to distribute almost anything as a platform specific gem.

  • sqlite-spellfix

    Loadable spellfix1 extension for sqlite as python package

  • sqlite-icu

    Loadable ICU extension for sqlite as python package

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • SQLiteGPT - Directly query ChatGPT with SQL functions

    2 projects | /r/sqlite | 13 Apr 2023
  • I'm writing a new vector search SQLite Extension

    13 projects | news.ycombinator.com | 2 May 2024
  • Embeddings are a good starting point for the AI curious app developer

    7 projects | news.ycombinator.com | 17 Apr 2024
  • SQLite vs. Chroma: A Comparative Analysis for Managing Vector Embeddings

    2 projects | dev.to | 7 Oct 2023
  • Vector database is not a separate database category

    3 projects | news.ycombinator.com | 2 Oct 2023