picovolt 0.11.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -10
- package/package.json +1 -1
- package/picovolt_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
# PicoVolt (PVDB)
|
|
2
2
|
|
|
3
3
|
[](https://github.com/MiniJe/picovolt/actions/workflows/ci.yml)
|
|
4
|
-
[](CHANGELOG.md)
|
|
5
5
|
[](LICENSE)
|
|
6
|
-

|
|
7
7
|
[](https://github.com/MiniJe/picovolt)
|
|
8
8
|
|
|
9
|
-
PicoVolt is an embedded database engine written from scratch in Rust.
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
PicoVolt is an embedded database engine written from scratch in Rust. As of 1.0
|
|
10
|
+
its public API and on-disk format are stable under Semantic Versioning. It is
|
|
11
|
+
young software and has not had an external security audit, so review it and keep
|
|
12
|
+
backups before trusting it with data you cannot regenerate.
|
|
12
13
|
|
|
13
14
|
If PicoVolt is useful to you, consider starring the repository on GitHub. It is
|
|
14
15
|
the simplest way to help others discover the project.
|
|
@@ -55,7 +56,7 @@ Linux and Windows. Changes are tracked in [CHANGELOG.md](CHANGELOG.md).
|
|
|
55
56
|
| [`engine/mvcc.rs`](src/engine/mvcc.rs) | transaction clock and snapshot visibility |
|
|
56
57
|
| [`engine/wasm.rs`](src/engine/wasm.rs) | sandboxed `wasmi` extension runtime and the `WasmExec` backend trait |
|
|
57
58
|
| [`engine/interp.rs`](src/engine/interp.rs) | `pv-wasm`: a from-scratch WASM interpreter (integer subset) |
|
|
58
|
-
| [`engine/query.rs`](src/engine/query.rs) | SQL front-end (CREATE/INSERT/UPDATE/DELETE/DROP, `SELECT` with projection
|
|
59
|
+
| [`engine/query.rs`](src/engine/query.rs) | SQL front-end (CREATE/INSERT/UPDATE/DELETE/DROP, `SELECT` with projection, `AS` aliases, `DISTINCT`, aggregates, `GROUP BY`/`HAVING`, `WHERE` predicates incl. `IN`/`BETWEEN`/`IS NULL`/`LIKE`, `BEFORE`, multi-column `ORDER BY`, `LIMIT`) |
|
|
59
60
|
| [`engine/compliance.rs`](src/engine/compliance.rs) | optional, app-driven usage-policy hook (not a license requirement) |
|
|
60
61
|
| [`db.rs`](src/db.rs) | the `Database` surface that ties it together |
|
|
61
62
|
| [`ffi.rs`](src/ffi.rs) | C ABI (the `capi` feature): a panic-safe, C-callable surface wrapping the engine for Go, Python, and C bindings |
|
|
@@ -110,10 +111,12 @@ cargo run --release --example bench # evaluation harness across modes and wor
|
|
|
110
111
|
|
|
111
112
|
SQL supported: `CREATE TABLE`, `CREATE INDEX ON t (col)`, `INSERT`,
|
|
112
113
|
`UPDATE ... SET ... WHERE`, `DELETE ... WHERE`, `DROP TABLE`, and
|
|
113
|
-
`SELECT {* | col, ... | COUNT/SUM/MIN/MAX/AVG(...)
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
`
|
|
114
|
+
`SELECT [DISTINCT] {* | col [AS alias], ... | COUNT/SUM/MIN/MAX/AVG(...) [AS alias]}
|
|
115
|
+
FROM t [WHERE <pred>] [GROUP BY cols] [HAVING <pred>] [BEFORE tx]
|
|
116
|
+
[ORDER BY col [ASC|DESC], ...] [LIMIT n]`, where `<pred>` combines
|
|
117
|
+
`col <op> value` (`=`, `!=`, `<`, `<=`, `>`, `>=`, `LIKE`, `NOT LIKE`),
|
|
118
|
+
`col [NOT] IN (...)`, `col [NOT] BETWEEN a AND b`, and `col IS [NOT] NULL` with
|
|
119
|
+
`AND`, `OR`, and parentheses. Integer and decimal values compare by magnitude.
|
|
117
120
|
Durability is selectable via `Database::set_durability` (`Fast` OS-cache default,
|
|
118
121
|
or crash-safe `Sync` with fsync and an atomic manifest).
|
|
119
122
|
|
package/package.json
CHANGED
package/picovolt_bg.wasm
CHANGED
|
Binary file
|