/sqlite.lua

SQLite LuaJIT binding with a very simple api.

Primary LanguageLuaMIT LicenseMIT

sqlite.lua 💫

SQLite/LuaJIT binding and a highly opinionated wrapper for storing, retrieving, caching, and persisting SQLite databases. sqlite.lua present new possibilities for plugin development and while it's primarily created for neovim, it support all luajit environments.

preview

✨ Features:

  • Connect, reconnect, close sql db connections sqlite:open/sql:close
  • Evaluate any sqlite statement and return result if any sqlite:eval
  • Helper function over sqlite:eval to do all sort of operation.
  • High level API with sqlite.tbl for better experience.
  • lua tables deserialization/serialization (in helper functions and high level api)
  • 90% test coverage.
  • Up-to-date docs and changelog

🚧 Installation

Packer.nvim (Neovim)

use { "kkharji/sqlite.lua" }

luarocks (LuaJIT)

luarocks install sqlite luv

Ensure you have sqlite3 installed locally. (if you are on mac it might be installed already)

Windows

Download precompiled and set let g:sqlite_clib_path = path/to/sqlite3.dll (note: /)

Linux

sudo pacman -S sqlite # Arch
sudo apt-get install sqlite3 libsqlite3-dev # Ubuntu
sudo dnf install sqlite sqlite-devel # Fedora

Nix (home-manager)

programs.neovim.plugins = [
    {
      plugin = pkgs.vimPlugins.sqlite-lua;
      config = "let g:sqlite_clib_path = '${pkgs.sqlite.out}/lib/libsqlite3.so'";
    }
];

Notes:

  • Ensure you install pkgs.sqlite
  • If you are using home-manager on OSX, you must replace libsqlite3.so with libsqlite3.dylib

🔥 Powered by sqlite.lua