-
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.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
rake-compiler-dock
Easy to use and reliable cross compiler environment for building Windows, Linux, Mac and JRuby binary gems.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
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
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
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
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.
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.
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.