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 CHANGED
@@ -1,14 +1,15 @@
1
1
  # PicoVolt (PVDB)
2
2
 
3
3
  [![CI](https://github.com/MiniJe/picovolt/actions/workflows/ci.yml/badge.svg)](https://github.com/MiniJe/picovolt/actions/workflows/ci.yml)
4
- [![Version](https://img.shields.io/badge/version-0.11.0-blue.svg)](CHANGELOG.md)
4
+ [![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](CHANGELOG.md)
5
5
  [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
6
- ![Status: experimental](https://img.shields.io/badge/status-experimental-orange.svg)
6
+ ![Status: 1.0 stable](https://img.shields.io/badge/status-1.0%20stable-brightgreen.svg)
7
7
  [![GitHub stars](https://img.shields.io/github/stars/MiniJe/picovolt?style=social)](https://github.com/MiniJe/picovolt)
8
8
 
9
- PicoVolt is an embedded database engine written from scratch in Rust. It is
10
- experimental software. It has not been audited or hardened for production, so use
11
- it to learn from and prototype with rather than to store data you cannot lose.
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 and aggregates, `WHERE` predicates, `BEFORE`, `ORDER BY`, `LIMIT`) |
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(...)} FROM t [WHERE <pred>]
114
- [GROUP BY cols] [BEFORE tx] [ORDER BY col [ASC|DESC]] [LIMIT n]`, where `<pred>`
115
- combines `col <op> value` (`=`, `!=`, `<`, `<=`, `>`, `>=`, `LIKE`) with `AND`,
116
- `OR`, and parentheses.
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
@@ -2,7 +2,7 @@
2
2
  "name": "picovolt",
3
3
  "type": "module",
4
4
  "description": "PicoVolt (PVDB): a polymorphic embedded database engine in Rust.",
5
- "version": "0.11.0",
5
+ "version": "1.0.0",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
package/picovolt_bg.wasm CHANGED
Binary file