Features
Last updated
Last updated
Aligned to ;
A (written in Go);
HTTP/JSON access, with for convenience;
Directly call ws4sqlite
on a database (as above), many options available using a YAML companion file;
are supported;
Serving of in the same server instance;
of multiple value sets for a single statement;
may be passed to statements positionally (lists) or by name (maps);
of queries may be returned as key-value maps, or as values lists;
All queries of a call are executed in a ;
For each query/statement, specify if a failure should rollback the whole transaction, or the failure is to that query;
"": define SQL in the server, and call it from the client;
mode, configurable per-db;
(VACUUM, sql or backups), also configurable per-db;
Provide to execute when a DB is created;
mode enabled by default, can be ;
to directly serve web pages that can access ws4sqlite without CORS;
Quite fast!
Compact codebase;
Comprehensive test suite (make test
);
11 os's/arch's directly supported;
, for amd64, arm and arm64.
on the client, either using HTTP Basic Authentication or specifying the credentials in the request;
on the server, either by specifying credentials (also with hashed passwords) or providing a query to look them up in the db itself;
Some design choices:
Very thin layer over SQLite. Errors and type translation, for example, are those provided by the SQLite driver;
Doesn't support SQLite extensions, to improve portability.
can be configured
A database can be opened in (only queries will be allowed);
It's possible to enforce using , to avoid some forms of SQL injection and receiving SQL from the client altogether;
can be configured and enforced;
It's possible to to a network interface, to limit access.
Doesn't include HTTPS, as this can be done easily (and much more securely) with a ;