A Go-based language server implementing the Language Server Protocol for SQL, providing intelligent editing features across multiple RDBMS.
sqls is a language server for SQL that implements the Language Server Protocol (LSP) to provide intelligent code editing features like autocompletion, hover documentation, and formatting for SQL files. It connects to live databases (MySQL, PostgreSQL, SQLite, etc.) to offer context-aware assistance, reducing errors and improving productivity when writing SQL queries. The tool integrates with any editor that supports LSP, such as Vim, VS Code, Neovim, and Emacs.
Database developers, data engineers, and backend developers who write SQL regularly and use code editors with LSP support. It's particularly useful for teams working across multiple database systems who want consistent tooling.
Developers choose sqls because it brings rich, database-aware intelligence to SQL editing without being tied to a specific IDE. Its support for multiple RDBMS through native Go drivers and seamless LSP integration offers a lightweight, performant alternative to heavier database clients or editor-specific plugins.
SQL language server written in Go.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports MySQL, PostgreSQL, SQLite3, MSSQL, H2, and Vertica using native Go drivers, ensuring accurate and performant connections for context-aware features.
Automatically suggests JOIN conditions based on foreign keys, as demonstrated in the GIF, reducing manual errors in complex queries.
Implements LSP for integration with Vim, VS Code, Neovim, and Emacs, providing hover documentation, signature help, and formatting consistently across editors.
Includes configurable SSH tunneling for database connections, essential for secure remote development workflows, as shown in the configuration samples.
The project has no stable release and warns of destructive interface and configuration changes, making it unreliable for production or long-term projects.
Lacks features for CREATE TABLE and ALTER TABLE statements, limiting its utility for schema management and design tasks.
Requires detailed YAML or JSON setup for database connections, which can be intricate and error-prone, especially with SSH tunneling or multiple databases.