kkharji/sqlite.lua

SQLite LuaJIT binding with a very simple api.

Lua

570

163 commits

updated Mar 14, 2025

See the code

README

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${stdenv.hostPlatform.extensions.sharedLibrary}'";
    }
];

Notes:

  • Ensure you install pkgs.sqlite

🔥 Powered by sqlite.lua

database
luajit
luarocks
neovim
sqlite

kkharji/sqlite.lua

SQLite LuaJIT binding with a very simple api.

Lua

570

163 commits

updated Mar 14, 2025

See the code

README

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${stdenv.hostPlatform.extensions.sharedLibrary}'";
    }
];

Notes:

  • Ensure you install pkgs.sqlite

🔥 Powered by sqlite.lua

database
luajit
luarocks
neovim
sqlite

Significant stargazers

Marco Hinz

725 followers · starred Jan 2021

Sumner Evans

264 followers · starred Nov 2023

mjlbach

321 followers · starred Jan 2021

Jannik Buhr

209 followers · starred Mar 2024