benbjohnson / litestream

Streaming replication for SQLite.
https://litestream.io
Apache License 2.0
11.12k stars 256 forks source link

Extracting the executable file from the .deb release package #534

Closed fractaledmind closed 11 months ago

fractaledmind commented 11 months ago

Hey there. First off, let me say: I deeply love this project. I think it robustly solves a critical problem for SQLite-backed web applications. I am a Rails developer, and I have been exploring and writing a lot lately about how to get SQLite-backed Rails applications running smoothly. One detail is getting Litestream installed and setup. What I'd love to do is create a Litestream Ruby gem that packages up the executable for the various platforms that RubyGems and Litestream support (arm64-darwin, x86_64-darwin, and x86_64-linux).

A Litestream gem would allow any Ruby web app to install Litestream as simply as bundle add litestream. Then, for Rails applications, in addition to installing the executable, the gem could set up Litestream for the application automatically. That means creating a configuration file and starting the replication process. So the gem could provide an installation generator bin/rails generate litestream:install. This would create a Litestream configuration file in your application repository and add the Litestream process to your Procfile. This gem could also provide Rake tasks that wrap the CLI commands for Litestream.

I'm happy to take this work on myself, but I am trying to figure out how to get the compiled executables for the different platforms. You provide a .zip of the arm64-darwin and x86_64-darwin executables, but the x86_64-linux release asset is a .deb file that packages up the executable. How could I extract the x86_64-linux executable file from the .deb package programmatically?

mohammed90 commented 11 months ago

You don't need to extract any files from the .deb. The executables are in the .tar.gz files, which are part of the releases assets.

fractaledmind commented 11 months ago

Ah! That makes sense. Thanks for the heads up. Will get back to work trying to get the gem infrastructure setup properly. That is useful, thank you @mohammed90!

fractaledmind commented 11 months ago

Made some solid progress. Think this should all be possible: https://github.com/fractaledmind/litestream-ruby https://rubygems.org/gems/litestream