6个版本 (3个重大更改)

0.4.1 2024年3月8日
0.4.0 2024年3月8日
0.3.0 2024年3月7日
0.2.1 2024年3月7日
0.1.0 2024年2月20日

#765数据库接口

Download history 300/week @ 2024-03-08 7/week @ 2024-03-15 22/week @ 2024-03-22 12/week @ 2024-03-29

每月 198 次下载

MIT 许可证

16KB
287 代码行

sqlite-http

SQLite的HTTP接口。与Litestream配合良好,用于备份/复制。

安装

cargo install sqlite-http
> sqlite-http --help
An HTTP interface for SQLite.

Usage: sqlite-http [OPTIONS] --host <HOST> --db-path <DB_PATH>

Options:
      --host <HOST>
          The host to bind to
      --db-path <DB_PATH>
          The path to the database file
      --collect-metadata
          Enable metadata collection about incoming queries
      --disable-wal-mode
          Disable Write-Ahead-Logging mode. Enabled by default
      --disable-foreign-keys
          Don't enforce foreign key constraints. Enforced by default
      --load-extension <LOAD_EXTENSION>
          Load an extension from the provided path. This flag can be used multiple times in one invocation to load multiple extensions
  -h, --help
          Print help
  -V, --version
          Print version

示例

基本示例

sqlite-http --host 127.0.0.1:8080 --db-path ./example.db

仅接收sqlite-http的日志

SQLITE_HTTP_LOG=off,sqlite_http=trace sqlite-http --host 127.0.0.1:8080 --db-path ./example.db

使用litestream进行复制(现有配置假定已运行本地MinIO实例)

litestream replicate -config ./etc/litestream.yml

使用litestream进行恢复(现有配置假定已运行本地MinIO实例)

litestream restore -config ./etc/litestream.yml -replica "S3 Backup" ./example.db

用法

发送此内容

{
    "sql" "INSERT INTO my_table (str_col, bool_col, blob_col, real_col) VALUES (?, ?, ?, ?)",
    "args": ["column 1", true, "03", 4]
}

获取此内容

{
    "rows": []
}

发送此内容

{
    "sql" "SELECT * FROM my_table",
    "args": []
}

获取此内容

{
    rows: [
        ["column 1", true, "03", 4]
    ]
}

收集元数据

使用 --collect-metadata 标志创建一个 __metadata_query 表,这可能有助于调试和性能监控。其模式如下,并且可以像其他表一样进行查询。

类型
id INTEGER
payload TEXT
started_at TEXT
finished_at TEXT

依赖关系

~32–43MB
~706K SLoC