1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
[]
# Root Cargo package (the engine crate) + the Tauri desktop app + the
# C FFI shim + the language-SDK wrappers (Python, Node.js, WASM …).
# The engine is also the workspace root's own package for historical
# compatibility with scripts that assume `cargo build` at the repo
# root produces the REPL binary.
#
# Note: sdk/wasm isn't a workspace member because its target is
# wasm32-unknown-unknown. `cargo build --workspace` on a native host
# would fail on a wasm-only crate; wasm-pack drives that build
# separately.
= [".", "desktop/src-tauri", "sqlrite-ffi", "sdk/python", "sdk/nodejs"]
= "3"
[]
# Published to crates.io as `sqlrite-engine` because `sqlrite` was
# already taken (unrelated project — RAG-oriented SQLite wrapper). The
# lib target below keeps `name = "sqlrite"`, so downstream Rust code
# still writes `use sqlrite::…` — only the `cargo add` line and the
# dependency declaration change:
#
# [dependencies]
# sqlrite-engine = "0.1"
# # then in code: use sqlrite::{Database, …};
#
# Any workspace member here that depends on the engine uses the
# `package =` key so the import name stays `sqlrite` internally:
# sqlrite = { package = "sqlrite-engine", path = "…" }
= "sqlrite-engine"
= "0.1.7"
= ["Joao Henrique Machado Silva <joaoh82@gmail.com>"]
= "2024"
= "1.85"
= "Light version of SQLite developed with Rust. Published as `sqlrite-engine` on crates.io; import as `use sqlrite::…`."
= "https://github.com/joaoh82/rust_sqlite"
= "MIT"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
# Library target — the engine. Used by the REPL binary below, by tests, and
# by the Tauri desktop app under `desktop/src-tauri/`. Keep the lib's public
# surface small (see `src/lib.rs`); the internals are versioned with
# on-disk format changes, so consumers should stick to the re-exports.
[]
= "sqlrite"
= "src/lib.rs"
# Binary target — the interactive REPL. Needs the `cli` feature
# (default-on) so rustyline/clap/env_logger are pulled in; a
# `--no-default-features` build (e.g. for WASM or a minimal
# embedding) skips the bin entirely via `required-features`.
[[]]
= "sqlrite"
= "src/main.rs"
= ["cli"]
# Phase 5a quickstart — the canonical "how do I use this as a library?"
# walkthrough. Run with `cargo run --example quickstart`. Lives under
# `examples/rust/` so the top-level `examples/` directory can fan out
# into sibling language-SDK directories (python/, nodejs/, go/, wasm/)
# as each Phase 5 sub-phase lands.
[[]]
= "quickstart"
= "examples/rust/quickstart.rs"
[]
# Default build includes everything: the REPL binary (cli) and
# POSIX/Windows advisory file locks on the Pager (file-locks).
# Disabled per-feature for embeddings that don't need them —
# notably the WASM SDK, which builds the engine with
# `default-features = false` so rustyline, clap, env_logger, and
# fs2 don't try to compile against wasm32-unknown-unknown (none of
# them support that target).
= ["cli", "file-locks"]
= ["dep:rustyline", "dep:rustyline-derive", "dep:env_logger", "dep:clap"]
= ["dep:fs2"]
[]
# Always-on engine deps — pure-Rust and wasm-compatible.
= "0.4"
= "0.61"
= "2.0"
= "0.10"
# CLI-only deps (feature-gated). `optional = true` + the `cli`
# feature above means these only land in the dep graph when
# something enables the feature.
= { = "18.0", = true }
= { = "0.12", = true }
= { = "0.11", = true }
= { = "4.6", = ["cargo"], = true }
# Cross-platform advisory file locks. Used by the Pager for
# single-writer exclusion (Phase 4a → 4e). Feature-gated because
# fs2 wraps POSIX flock / Windows LockFileEx — neither exists on
# wasm32-unknown-unknown.
= { = "0.4", = true }