Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Limbo integration? #1821

Open
penberg opened this issue Nov 15, 2024 · 4 comments
Open

Limbo integration? #1821

penberg opened this issue Nov 15, 2024 · 4 comments
Labels
enhancement New feature or request question Further information is requested

Comments

@penberg
Copy link
Collaborator

penberg commented Nov 15, 2024

Limbo is a SQLite-compatible in process database, written in Rust: https://github.com/penberg/limbo One way to integrate Limbo with libSQL is by adding a "limbo" feature flag that makes libsql_ffi link to Limbo instead of SQLite.

@penberg penberg added enhancement New feature or request question Further information is requested labels Nov 15, 2024
@jokeyrhyme
Copy link

I wonder if it's possible in this situation to avoid FFI / C-ABI and instead have limbo exposed as a crate that limbo calls directly into in a pure Rust fashion? rustc / LLVM could then even optimise away the parts of the SQLite implementation that aren't used by a particular application (at the cost of having to recompile limbo)

@penberg
Copy link
Collaborator Author

penberg commented Jan 3, 2025

@jokeyrhyme I think that's a good approach too, but I do worry that the difference between SQLite and Limbo is going to be very significant with little code shared. But something to consider, for sure because it's likely going to be cleaner and faster that way.

@penberg
Copy link
Collaborator Author

penberg commented Jan 3, 2025

To follow up on this @jokeyrhyme, tursodatabase/limbo#597 might be the cleanest option here... It's more work, of course, but nicely allows you to be 100% Rust here. Worth exploring.

@jokeyrhyme
Copy link

Ah, interesting, cheers! @penberg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants