picovolt 1.9.0 → 2.2.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.
Files changed (308) hide show
  1. package/APACHE-2.0-LEGACY.txt +201 -0
  2. package/LICENSE +152 -201
  3. package/NOTICE +17 -0
  4. package/PUBLIC-RELEASE.json +32 -0
  5. package/README.md +88 -36
  6. package/browser.js +11 -0
  7. package/dependency-inventory.json +1167 -0
  8. package/package.json +11 -4
  9. package/picovolt.d.ts +8 -0
  10. package/picovolt_bg.js +51 -0
  11. package/picovolt_bg.wasm +0 -0
  12. package/sqlite.js +12 -0
  13. package/third-party-notices/aead-0.5.2/LICENSE-APACHE +202 -0
  14. package/third-party-notices/aead-0.5.2/LICENSE-MIT +26 -0
  15. package/third-party-notices/ahash-0.8.12/LICENSE-APACHE +201 -0
  16. package/third-party-notices/ahash-0.8.12/LICENSE-MIT +25 -0
  17. package/third-party-notices/android_system_properties-0.1.6/LICENSE-APACHE +13 -0
  18. package/third-party-notices/android_system_properties-0.1.6/LICENSE-MIT +20 -0
  19. package/third-party-notices/argon2-0.5.3/LICENSE-APACHE +201 -0
  20. package/third-party-notices/argon2-0.5.3/LICENSE-MIT +25 -0
  21. package/third-party-notices/arrayvec-0.7.8/LICENSE-APACHE +201 -0
  22. package/third-party-notices/arrayvec-0.7.8/LICENSE-MIT +25 -0
  23. package/third-party-notices/arrow-array-59.3.0/LICENSE-MIT +21 -0
  24. package/third-party-notices/arrow-array-59.3.0/LICENSE.txt +202 -0
  25. package/third-party-notices/arrow-array-59.3.0/NOTICE.txt +13 -0
  26. package/third-party-notices/arrow-buffer-59.3.0/LICENSE.txt +202 -0
  27. package/third-party-notices/arrow-buffer-59.3.0/NOTICE.txt +13 -0
  28. package/third-party-notices/arrow-data-59.3.0/LICENSE.txt +202 -0
  29. package/third-party-notices/arrow-data-59.3.0/NOTICE.txt +13 -0
  30. package/third-party-notices/arrow-ipc-59.3.0/LICENSE.txt +202 -0
  31. package/third-party-notices/arrow-ipc-59.3.0/NOTICE.txt +13 -0
  32. package/third-party-notices/arrow-schema-59.3.0/LICENSE.txt +202 -0
  33. package/third-party-notices/arrow-schema-59.3.0/NOTICE.txt +13 -0
  34. package/third-party-notices/arrow-select-59.3.0/LICENSE.txt +202 -0
  35. package/third-party-notices/arrow-select-59.3.0/NOTICE.txt +13 -0
  36. package/third-party-notices/ascii-1.1.0/LICENSE-APACHE +201 -0
  37. package/third-party-notices/ascii-1.1.0/LICENSE-MIT +22 -0
  38. package/third-party-notices/autocfg-1.5.1/LICENSE-APACHE +201 -0
  39. package/third-party-notices/autocfg-1.5.1/LICENSE-MIT +25 -0
  40. package/third-party-notices/base64-0.23.1/LICENSE-APACHE +201 -0
  41. package/third-party-notices/base64-0.23.1/LICENSE-MIT +21 -0
  42. package/third-party-notices/base64ct-1.8.3/LICENSE-APACHE +201 -0
  43. package/third-party-notices/base64ct-1.8.3/LICENSE-MIT +26 -0
  44. package/third-party-notices/bitflags-2.13.1/LICENSE-APACHE +201 -0
  45. package/third-party-notices/bitflags-2.13.1/LICENSE-MIT +25 -0
  46. package/third-party-notices/blake2-0.10.6/LICENSE-APACHE +201 -0
  47. package/third-party-notices/blake2-0.10.6/LICENSE-MIT +26 -0
  48. package/third-party-notices/blake3-1.8.7/LICENSE_A2 +202 -0
  49. package/third-party-notices/blake3-1.8.7/LICENSE_A2LLVM +219 -0
  50. package/third-party-notices/blake3-1.8.7/LICENSE_CC0 +121 -0
  51. package/third-party-notices/block-buffer-0.10.4/LICENSE-APACHE +201 -0
  52. package/third-party-notices/block-buffer-0.10.4/LICENSE-MIT +25 -0
  53. package/third-party-notices/block-buffer-0.12.1/LICENSE-APACHE +201 -0
  54. package/third-party-notices/block-buffer-0.12.1/LICENSE-MIT +25 -0
  55. package/third-party-notices/bumpalo-3.20.3/LICENSE-APACHE +201 -0
  56. package/third-party-notices/bumpalo-3.20.3/LICENSE-MIT +25 -0
  57. package/third-party-notices/bytes-1.12.1/LICENSE +25 -0
  58. package/third-party-notices/cc-1.4.5/LICENSE-APACHE +201 -0
  59. package/third-party-notices/cc-1.4.5/LICENSE-MIT +25 -0
  60. package/third-party-notices/cfg-if-1.0.4/LICENSE-APACHE +201 -0
  61. package/third-party-notices/cfg-if-1.0.4/LICENSE-MIT +25 -0
  62. package/third-party-notices/chacha20-0.9.1/LICENSE-APACHE +201 -0
  63. package/third-party-notices/chacha20-0.9.1/LICENSE-MIT +25 -0
  64. package/third-party-notices/chacha20poly1305-0.10.1/LICENSE-APACHE +201 -0
  65. package/third-party-notices/chacha20poly1305-0.10.1/LICENSE-MIT +25 -0
  66. package/third-party-notices/chrono-0.4.45/LICENSE.txt +240 -0
  67. package/third-party-notices/chunked_transfer-1.5.0/LICENSE-APACHE +201 -0
  68. package/third-party-notices/chunked_transfer-1.5.0/LICENSE-MIT +22 -0
  69. package/third-party-notices/cipher-0.4.4/LICENSE-APACHE +201 -0
  70. package/third-party-notices/cipher-0.4.4/LICENSE-MIT +25 -0
  71. package/third-party-notices/console_error_panic_hook-0.1.7/LICENSE-APACHE +201 -0
  72. package/third-party-notices/console_error_panic_hook-0.1.7/LICENSE-MIT +25 -0
  73. package/third-party-notices/const-random-0.1.18/LICENSE-APACHE +201 -0
  74. package/third-party-notices/const-random-0.1.18/LICENSE-MIT +25 -0
  75. package/third-party-notices/const-random-macro-0.1.16/LICENSE-APACHE +201 -0
  76. package/third-party-notices/const-random-macro-0.1.16/LICENSE-MIT +25 -0
  77. package/third-party-notices/constant_time_eq-0.4.2/LICENSE-APACHE +176 -0
  78. package/third-party-notices/constant_time_eq-0.4.2/LICENSE-CC0 +121 -0
  79. package/third-party-notices/constant_time_eq-0.4.2/LICENSE-MIT0 +14 -0
  80. package/third-party-notices/core-foundation-sys-0.8.7/LICENSE-APACHE +201 -0
  81. package/third-party-notices/core-foundation-sys-0.8.7/LICENSE-MIT +25 -0
  82. package/third-party-notices/cpufeatures-0.2.17/LICENSE-APACHE +201 -0
  83. package/third-party-notices/cpufeatures-0.2.17/LICENSE-MIT +25 -0
  84. package/third-party-notices/cpufeatures-0.3.1/LICENSE-APACHE +201 -0
  85. package/third-party-notices/cpufeatures-0.3.1/LICENSE-MIT +25 -0
  86. package/third-party-notices/crunchy-0.2.4/LICENSE +21 -0
  87. package/third-party-notices/crypto-common-0.1.7/LICENSE-APACHE +201 -0
  88. package/third-party-notices/crypto-common-0.1.7/LICENSE-MIT +25 -0
  89. package/third-party-notices/crypto-common-0.2.2/LICENSE-APACHE +201 -0
  90. package/third-party-notices/crypto-common-0.2.2/LICENSE-MIT +25 -0
  91. package/third-party-notices/curve25519-dalek-5.0.0/LICENSE +29 -0
  92. package/third-party-notices/curve25519-dalek-derive-0.1.1/LICENSE-APACHE +201 -0
  93. package/third-party-notices/curve25519-dalek-derive-0.1.1/LICENSE-MIT +23 -0
  94. package/third-party-notices/digest-0.10.7/LICENSE-APACHE +201 -0
  95. package/third-party-notices/digest-0.10.7/LICENSE-MIT +25 -0
  96. package/third-party-notices/digest-0.11.3/LICENSE-APACHE +201 -0
  97. package/third-party-notices/digest-0.11.3/LICENSE-MIT +26 -0
  98. package/third-party-notices/ed25519-3.0.0/LICENSE-APACHE +201 -0
  99. package/third-party-notices/ed25519-3.0.0/LICENSE-MIT +25 -0
  100. package/third-party-notices/ed25519-dalek-3.0.0/LICENSE +28 -0
  101. package/third-party-notices/equivalent-1.0.2/LICENSE-APACHE +201 -0
  102. package/third-party-notices/equivalent-1.0.2/LICENSE-MIT +25 -0
  103. package/third-party-notices/errno-0.3.14/LICENSE-APACHE +201 -0
  104. package/third-party-notices/errno-0.3.14/LICENSE-MIT +25 -0
  105. package/third-party-notices/fallible-iterator-0.3.0/LICENSE-APACHE +202 -0
  106. package/third-party-notices/fallible-iterator-0.3.0/LICENSE-MIT +19 -0
  107. package/third-party-notices/fallible-streaming-iterator-0.1.9/LICENSE-APACHE +202 -0
  108. package/third-party-notices/fallible-streaming-iterator-0.1.9/LICENSE-MIT +19 -0
  109. package/third-party-notices/fastrand-2.5.0/LICENSE-APACHE +201 -0
  110. package/third-party-notices/fastrand-2.5.0/LICENSE-MIT +23 -0
  111. package/third-party-notices/fiat-crypto-0.3.0/LICENSE-APACHE +15 -0
  112. package/third-party-notices/fiat-crypto-0.3.0/LICENSE-BSD-1 +23 -0
  113. package/third-party-notices/fiat-crypto-0.3.0/LICENSE-MIT +21 -0
  114. package/third-party-notices/find-msvc-tools-0.1.12/LICENSE-APACHE +201 -0
  115. package/third-party-notices/find-msvc-tools-0.1.12/LICENSE-MIT +25 -0
  116. package/third-party-notices/flate2-1.1.10/LICENSE-APACHE +201 -0
  117. package/third-party-notices/flate2-1.1.10/LICENSE-MIT +25 -0
  118. package/third-party-notices/foldhash-0.1.5/LICENSE +19 -0
  119. package/third-party-notices/fs2-0.4.3/LICENSE-APACHE +201 -0
  120. package/third-party-notices/fs2-0.4.3/LICENSE-MIT +25 -0
  121. package/third-party-notices/futures-core-0.3.34/LICENSE-APACHE +202 -0
  122. package/third-party-notices/futures-core-0.3.34/LICENSE-MIT +26 -0
  123. package/third-party-notices/futures-task-0.3.34/LICENSE-APACHE +202 -0
  124. package/third-party-notices/futures-task-0.3.34/LICENSE-MIT +26 -0
  125. package/third-party-notices/futures-util-0.3.34/LICENSE-APACHE +202 -0
  126. package/third-party-notices/futures-util-0.3.34/LICENSE-MIT +26 -0
  127. package/third-party-notices/generic-array-0.14.7/LICENSE +21 -0
  128. package/third-party-notices/getrandom-0.2.17/LICENSE-APACHE +201 -0
  129. package/third-party-notices/getrandom-0.2.17/LICENSE-MIT +26 -0
  130. package/third-party-notices/getrandom-0.3.4/LICENSE-APACHE +201 -0
  131. package/third-party-notices/getrandom-0.3.4/LICENSE-MIT +26 -0
  132. package/third-party-notices/getrandom-0.4.3/LICENSE-APACHE +201 -0
  133. package/third-party-notices/getrandom-0.4.3/LICENSE-MIT +26 -0
  134. package/third-party-notices/half-2.7.1/LICENSE-APACHE +176 -0
  135. package/third-party-notices/half-2.7.1/LICENSE-MIT +19 -0
  136. package/third-party-notices/hashbrown-0.15.5/LICENSE-APACHE +201 -0
  137. package/third-party-notices/hashbrown-0.15.5/LICENSE-MIT +25 -0
  138. package/third-party-notices/hashbrown-0.17.1/LICENSE-APACHE +201 -0
  139. package/third-party-notices/hashbrown-0.17.1/LICENSE-MIT +25 -0
  140. package/third-party-notices/httpdate-1.0.3/LICENSE-APACHE +201 -0
  141. package/third-party-notices/httpdate-1.0.3/LICENSE-MIT +19 -0
  142. package/third-party-notices/hybrid-array-0.4.14/LICENSE-APACHE +201 -0
  143. package/third-party-notices/hybrid-array-0.4.14/LICENSE-MIT +25 -0
  144. package/third-party-notices/iana-time-zone-0.1.65/LICENSE-APACHE +201 -0
  145. package/third-party-notices/iana-time-zone-0.1.65/LICENSE-MIT +25 -0
  146. package/third-party-notices/iana-time-zone-haiku-0.1.2/LICENSE-APACHE +201 -0
  147. package/third-party-notices/iana-time-zone-haiku-0.1.2/LICENSE-MIT +25 -0
  148. package/third-party-notices/indexmap-2.14.1/LICENSE-APACHE +201 -0
  149. package/third-party-notices/indexmap-2.14.1/LICENSE-MIT +25 -0
  150. package/third-party-notices/inout-0.1.4/LICENSE-APACHE +201 -0
  151. package/third-party-notices/inout-0.1.4/LICENSE-MIT +26 -0
  152. package/third-party-notices/itoa-1.0.18/LICENSE-APACHE +176 -0
  153. package/third-party-notices/itoa-1.0.18/LICENSE-MIT +23 -0
  154. package/third-party-notices/jobserver-0.1.35/LICENSE-APACHE +201 -0
  155. package/third-party-notices/jobserver-0.1.35/LICENSE-MIT +25 -0
  156. package/third-party-notices/js-sys-0.3.104/LICENSE-APACHE +201 -0
  157. package/third-party-notices/js-sys-0.3.104/LICENSE-MIT +25 -0
  158. package/third-party-notices/leb128fmt-0.1.0/LICENSE-APACHE +201 -0
  159. package/third-party-notices/leb128fmt-0.1.0/LICENSE-MIT +23 -0
  160. package/third-party-notices/libc-0.2.189/LICENSE-APACHE +176 -0
  161. package/third-party-notices/libc-0.2.189/LICENSE-MIT +25 -0
  162. package/third-party-notices/libm-0.2.16/LICENSE.txt +258 -0
  163. package/third-party-notices/libsqlite3-sys-0.38.2/LICENSE +19 -0
  164. package/third-party-notices/linux-raw-sys-0.12.1/LICENSE-APACHE +201 -0
  165. package/third-party-notices/linux-raw-sys-0.12.1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  166. package/third-party-notices/linux-raw-sys-0.12.1/LICENSE-MIT +23 -0
  167. package/third-party-notices/log-0.4.34/LICENSE-APACHE +201 -0
  168. package/third-party-notices/log-0.4.34/LICENSE-MIT +25 -0
  169. package/third-party-notices/memchr-2.8.3/COPYING +3 -0
  170. package/third-party-notices/memchr-2.8.3/LICENSE-MIT +21 -0
  171. package/third-party-notices/memmap2-0.9.11/LICENSE-APACHE +201 -0
  172. package/third-party-notices/memmap2-0.9.11/LICENSE-MIT +26 -0
  173. package/third-party-notices/num-bigint-0.5.1/LICENSE-APACHE +201 -0
  174. package/third-party-notices/num-bigint-0.5.1/LICENSE-MIT +25 -0
  175. package/third-party-notices/num-complex-0.4.6/LICENSE-APACHE +201 -0
  176. package/third-party-notices/num-complex-0.4.6/LICENSE-MIT +25 -0
  177. package/third-party-notices/num-integer-0.1.47/LICENSE-APACHE +201 -0
  178. package/third-party-notices/num-integer-0.1.47/LICENSE-MIT +25 -0
  179. package/third-party-notices/num-traits-0.2.19/LICENSE-APACHE +201 -0
  180. package/third-party-notices/num-traits-0.2.19/LICENSE-MIT +25 -0
  181. package/third-party-notices/once_cell-1.21.4/LICENSE-APACHE +201 -0
  182. package/third-party-notices/once_cell-1.21.4/LICENSE-MIT +23 -0
  183. package/third-party-notices/opaque-debug-0.3.1/LICENSE-APACHE +201 -0
  184. package/third-party-notices/opaque-debug-0.3.1/LICENSE-MIT +25 -0
  185. package/third-party-notices/parquet-59.3.0/LICENSE.txt +202 -0
  186. package/third-party-notices/parquet-59.3.0/NOTICE.txt +13 -0
  187. package/third-party-notices/password-hash-0.5.0/LICENSE-APACHE +201 -0
  188. package/third-party-notices/password-hash-0.5.0/LICENSE-MIT +25 -0
  189. package/third-party-notices/pin-project-lite-0.2.17/LICENSE-APACHE +177 -0
  190. package/third-party-notices/pin-project-lite-0.2.17/LICENSE-MIT +23 -0
  191. package/third-party-notices/pkg-config-0.3.34/LICENSE-APACHE +201 -0
  192. package/third-party-notices/pkg-config-0.3.34/LICENSE-MIT +25 -0
  193. package/third-party-notices/poly1305-0.8.0/LICENSE-APACHE +201 -0
  194. package/third-party-notices/poly1305-0.8.0/LICENSE-MIT +25 -0
  195. package/third-party-notices/proc-macro2-1.0.107/LICENSE-APACHE +176 -0
  196. package/third-party-notices/proc-macro2-1.0.107/LICENSE-MIT +23 -0
  197. package/third-party-notices/quote-1.0.47/LICENSE-APACHE +176 -0
  198. package/third-party-notices/quote-1.0.47/LICENSE-MIT +23 -0
  199. package/third-party-notices/rand_core-0.6.4/LICENSE-APACHE +187 -0
  200. package/third-party-notices/rand_core-0.6.4/LICENSE-MIT +26 -0
  201. package/third-party-notices/rusqlite-0.40.2/LICENSE +19 -0
  202. package/third-party-notices/rustc_version-0.4.1/LICENSE-APACHE +201 -0
  203. package/third-party-notices/rustc_version-0.4.1/LICENSE-MIT +25 -0
  204. package/third-party-notices/rustix-1.1.4/LICENSE-APACHE +201 -0
  205. package/third-party-notices/rustix-1.1.4/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  206. package/third-party-notices/rustix-1.1.4/LICENSE-MIT +23 -0
  207. package/third-party-notices/rustversion-1.0.23/LICENSE-APACHE +176 -0
  208. package/third-party-notices/rustversion-1.0.23/LICENSE-MIT +23 -0
  209. package/third-party-notices/semver-1.0.28/LICENSE-APACHE +176 -0
  210. package/third-party-notices/semver-1.0.28/LICENSE-MIT +23 -0
  211. package/third-party-notices/seq-macro-0.3.6/LICENSE-APACHE +176 -0
  212. package/third-party-notices/seq-macro-0.3.6/LICENSE-MIT +23 -0
  213. package/third-party-notices/serde-1.0.229/LICENSE-APACHE +176 -0
  214. package/third-party-notices/serde-1.0.229/LICENSE-MIT +23 -0
  215. package/third-party-notices/serde_core-1.0.229/LICENSE-APACHE +176 -0
  216. package/third-party-notices/serde_core-1.0.229/LICENSE-MIT +23 -0
  217. package/third-party-notices/serde_derive-1.0.229/LICENSE-APACHE +176 -0
  218. package/third-party-notices/serde_derive-1.0.229/LICENSE-MIT +23 -0
  219. package/third-party-notices/serde_json-1.0.151/LICENSE-APACHE +176 -0
  220. package/third-party-notices/serde_json-1.0.151/LICENSE-MIT +23 -0
  221. package/third-party-notices/sha2-0.11.0/LICENSE-APACHE +201 -0
  222. package/third-party-notices/sha2-0.11.0/LICENSE-MIT +28 -0
  223. package/third-party-notices/shlex-2.0.1/LICENSE-APACHE +13 -0
  224. package/third-party-notices/shlex-2.0.1/LICENSE-MIT +21 -0
  225. package/third-party-notices/signature-3.0.0/LICENSE-APACHE +201 -0
  226. package/third-party-notices/signature-3.0.0/LICENSE-MIT +25 -0
  227. package/third-party-notices/slab-0.4.12/LICENSE +25 -0
  228. package/third-party-notices/smallvec-1.16.0/LICENSE-APACHE +201 -0
  229. package/third-party-notices/smallvec-1.16.0/LICENSE-MIT +25 -0
  230. package/third-party-notices/snap-1.1.2/COPYING +27 -0
  231. package/third-party-notices/spin-0.9.9/LICENSE +21 -0
  232. package/third-party-notices/string-interner-0.19.0/LICENSE-APACHE +15 -0
  233. package/third-party-notices/string-interner-0.19.0/LICENSE-MIT +21 -0
  234. package/third-party-notices/subtle-2.6.1/LICENSE +29 -0
  235. package/third-party-notices/syn-2.0.119/LICENSE-APACHE +176 -0
  236. package/third-party-notices/syn-2.0.119/LICENSE-MIT +23 -0
  237. package/third-party-notices/syn-3.0.4/LICENSE-APACHE +176 -0
  238. package/third-party-notices/syn-3.0.4/LICENSE-MIT +23 -0
  239. package/third-party-notices/tempfile-3.27.0/LICENSE-APACHE +201 -0
  240. package/third-party-notices/tempfile-3.27.0/LICENSE-MIT +25 -0
  241. package/third-party-notices/thiserror-2.0.20/LICENSE-APACHE +176 -0
  242. package/third-party-notices/thiserror-2.0.20/LICENSE-MIT +23 -0
  243. package/third-party-notices/thiserror-impl-2.0.20/LICENSE-APACHE +176 -0
  244. package/third-party-notices/thiserror-impl-2.0.20/LICENSE-MIT +23 -0
  245. package/third-party-notices/tiny-keccak-2.0.2/LICENSE +121 -0
  246. package/third-party-notices/tiny_http-0.12.0/LICENSE-APACHE +201 -0
  247. package/third-party-notices/tiny_http-0.12.0/LICENSE-MIT +25 -0
  248. package/third-party-notices/twox-hash-2.1.4/LICENSE.txt +21 -0
  249. package/third-party-notices/typenum-1.20.1/LICENSE +1 -0
  250. package/third-party-notices/typenum-1.20.1/LICENSE-APACHE +201 -0
  251. package/third-party-notices/typenum-1.20.1/LICENSE-MIT +21 -0
  252. package/third-party-notices/unicode-ident-1.0.24/LICENSE-APACHE +176 -0
  253. package/third-party-notices/unicode-ident-1.0.24/LICENSE-MIT +23 -0
  254. package/third-party-notices/unicode-ident-1.0.24/LICENSE-UNICODE +39 -0
  255. package/third-party-notices/unicode-width-0.2.2/LICENSE-APACHE +201 -0
  256. package/third-party-notices/unicode-width-0.2.2/LICENSE-MIT +25 -0
  257. package/third-party-notices/universal-hash-0.5.1/LICENSE-APACHE +201 -0
  258. package/third-party-notices/universal-hash-0.5.1/LICENSE-MIT +25 -0
  259. package/third-party-notices/vcpkg-0.2.15/LICENSE-APACHE +202 -0
  260. package/third-party-notices/vcpkg-0.2.15/LICENSE-MIT +26 -0
  261. package/third-party-notices/version_check-0.9.5/LICENSE-APACHE +201 -0
  262. package/third-party-notices/version_check-0.9.5/LICENSE-MIT +19 -0
  263. package/third-party-notices/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-APACHE +201 -0
  264. package/third-party-notices/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  265. package/third-party-notices/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-MIT +23 -0
  266. package/third-party-notices/wasip2-1.0.4+wasi-0.2.12/LICENSE-APACHE +201 -0
  267. package/third-party-notices/wasip2-1.0.4+wasi-0.2.12/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  268. package/third-party-notices/wasip2-1.0.4+wasi-0.2.12/LICENSE-MIT +23 -0
  269. package/third-party-notices/wasm-bindgen-0.2.127/LICENSE-APACHE +201 -0
  270. package/third-party-notices/wasm-bindgen-0.2.127/LICENSE-MIT +25 -0
  271. package/third-party-notices/wasm-bindgen-macro-0.2.127/LICENSE-APACHE +201 -0
  272. package/third-party-notices/wasm-bindgen-macro-0.2.127/LICENSE-MIT +25 -0
  273. package/third-party-notices/wasm-bindgen-macro-support-0.2.127/LICENSE-APACHE +201 -0
  274. package/third-party-notices/wasm-bindgen-macro-support-0.2.127/LICENSE-MIT +25 -0
  275. package/third-party-notices/wasm-bindgen-shared-0.2.127/LICENSE-APACHE +201 -0
  276. package/third-party-notices/wasm-bindgen-shared-0.2.127/LICENSE-MIT +25 -0
  277. package/third-party-notices/wasm-encoder-0.258.0/LICENSE-APACHE +201 -0
  278. package/third-party-notices/wasm-encoder-0.258.0/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  279. package/third-party-notices/wasm-encoder-0.258.0/LICENSE-MIT +23 -0
  280. package/third-party-notices/wasmparser-0.258.0/LICENSE-APACHE +201 -0
  281. package/third-party-notices/wasmparser-0.258.0/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  282. package/third-party-notices/wasmparser-0.258.0/LICENSE-MIT +23 -0
  283. package/third-party-notices/wast-258.0.0/LICENSE-APACHE +201 -0
  284. package/third-party-notices/wast-258.0.0/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  285. package/third-party-notices/wast-258.0.0/LICENSE-MIT +23 -0
  286. package/third-party-notices/wat-1.258.0/LICENSE-APACHE +201 -0
  287. package/third-party-notices/wat-1.258.0/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  288. package/third-party-notices/wat-1.258.0/LICENSE-MIT +23 -0
  289. package/third-party-notices/winapi-0.3.9/LICENSE-APACHE +201 -0
  290. package/third-party-notices/winapi-0.3.9/LICENSE-MIT +19 -0
  291. package/third-party-notices/wit-bindgen-0.57.1/LICENSE-APACHE +201 -0
  292. package/third-party-notices/wit-bindgen-0.57.1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  293. package/third-party-notices/wit-bindgen-0.57.1/LICENSE-MIT +23 -0
  294. package/third-party-notices/zerocopy-0.8.56/LICENSE-APACHE +202 -0
  295. package/third-party-notices/zerocopy-0.8.56/LICENSE-BSD +24 -0
  296. package/third-party-notices/zerocopy-0.8.56/LICENSE-MIT +26 -0
  297. package/third-party-notices/zerocopy-derive-0.8.56/LICENSE-APACHE +202 -0
  298. package/third-party-notices/zerocopy-derive-0.8.56/LICENSE-BSD +24 -0
  299. package/third-party-notices/zerocopy-derive-0.8.56/LICENSE-MIT +26 -0
  300. package/third-party-notices/zeroize-1.9.0/LICENSE-APACHE +202 -0
  301. package/third-party-notices/zeroize-1.9.0/LICENSE-MIT +25 -0
  302. package/third-party-notices/zlib-rs-0.6.7/LICENSE +19 -0
  303. package/third-party-notices/zmij-1.0.23/LICENSE-MIT +23 -0
  304. package/third-party-notices/zstd-0.13.3/LICENSE +8 -0
  305. package/third-party-notices/zstd-safe-7.3.0/LICENSE +28 -0
  306. package/third-party-notices/zstd-sys-2.1.0+zstd.1.5.7/LICENSE +28 -0
  307. package/third-party-notices/zstd-sys-2.1.0+zstd.1.5.7/LICENSE.BSD-3-Clause +32 -0
  308. package/worker.js +4 -0
package/README.md CHANGED
@@ -2,17 +2,56 @@
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
4
  [![crates.io](https://img.shields.io/crates/v/picovolt.svg)](https://crates.io/crates/picovolt)
5
- [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
6
- ![Status: stable 1.x](https://img.shields.io/badge/status-stable%201.x-brightgreen.svg)
5
+ [![License: Proprietary](https://img.shields.io/badge/license-Proprietary-blue.svg)](LICENSE)
7
6
  [![GitHub stars](https://img.shields.io/github/stars/MiniJe/picovolt?style=social)](https://github.com/MiniJe/picovolt)
8
7
 
9
- PicoVolt is an embedded database engine written in Rust. Its 1.x public API and
10
- on-disk format are stable under Semantic Versioning. It is young software and
11
- has not had an external security audit, so review it and keep backups before
12
- trusting it with data you cannot regenerate.
8
+ PicoVolt is an embedded SQL database with queryable history. **2.2.0** adds
9
+ native encrypted snapshots and vaults, key/password rotation, verified encrypted
10
+ backup/restore and hybrid full-text/vector retrieval. It builds on the snapshot
11
+ readers, bounded writer scheduling and durable commit logs introduced in 2.0.
13
12
 
14
- If PicoVolt is useful to you, consider starring the repository on GitHub. It is
15
- the simplest way to help others discover the project.
13
+ The source and official packages are available without a license fee under the
14
+ [PicoVolt Public-Source License 1.1](LICENSE). This proprietary license permits
15
+ commercial application embedding and unchanged registry/mirror distribution;
16
+ standalone competing database products require a separate agreement. This is
17
+ source-available, not open source. Earlier Apache grants remain unchanged.
18
+ No account, activation, telemetry or pre-download acceptance is required.
19
+
20
+ Read [encrypted storage](docs/ENCRYPTION_2_2.md), [hybrid search](docs/HYBRID_2_2.md)
21
+ and [release evidence](docs/RELEASE_2_2.md). Native vault encryption is not offered
22
+ in WASM. Independent security/cryptographic review and external application
23
+ trials have not been completed; automated verification is not such an audit.
24
+
25
+ Start with the [2.0 guide for every maintained interface](docs/QUICKSTART_2_0.md)
26
+ for atomic batches, persistence choices, log diagnostics and error recovery.
27
+ The [standalone review prompt](docs/INDEPENDENT_REVIEW_PROMPT.md) defines an
28
+ independent assessment and external trials deferred beyond the 2.0 release.
29
+
30
+ ## Quick start
31
+
32
+ The 2.2.0 release is free to download and use within its [license](LICENSE).
33
+ Historical 2.0 documentation below remains useful for unchanged APIs. See the
34
+ [transition policy](legal/TRANSITION.md) for continuing Apache rights and support.
35
+
36
+ ```sh
37
+ cargo add picovolt@2.2.0
38
+ ```
39
+
40
+ ```rust
41
+ use picovolt::Database;
42
+
43
+ fn main() -> Result<(), picovolt::PvError> {
44
+ let mut db = Database::open_memory();
45
+ db.query("CREATE TABLE notes (id, body)")?;
46
+ db.query("INSERT INTO notes VALUES (1, 'Hello, PicoVolt')")?;
47
+ println!("{:?}", db.query("SELECT * FROM notes")?);
48
+ Ok(())
49
+ }
50
+ ```
51
+
52
+ For other languages, see [Install and distribution](#install-and-distribution).
53
+
54
+ ## Storage model
16
55
 
17
56
  The engine decouples query logic from storage representation through a
18
57
  Virtualization Layer Engine (VLE) that shifts between two on-disk shapes:
@@ -28,10 +67,10 @@ MVCC-preserving columnar layout with packed decimal encoding.
28
67
 
29
68
  ## Status
30
69
 
31
- The current stable release is exercised by a 240+ test Rust suite plus doctests
70
+ The engine is exercised by Rust unit and integration suites plus doctests
32
71
  and maintained-binding integration tests. CI also enforces formatting and
33
72
  warning-free Clippy builds on Linux and Windows. Shipped changes are tracked in
34
- [CHANGELOG.md](CHANGELOG.md), and the remaining work toward 2.0 is tracked in
73
+ [CHANGELOG.md](CHANGELOG.md), and future work is tracked in
35
74
  [ROADMAP.md](ROADMAP.md).
36
75
 
37
76
  ### Module map
@@ -73,8 +112,10 @@ warning-free Clippy builds on Linux and Windows. Shipped changes are tracked in
73
112
  and are rejected rather than mis-run.
74
113
  - **Page-backed engine.** Tables are append-only chains of hot row pages and
75
114
  optional packed cold pages, each header linking to the next. Inserts append to
76
- a row tail and write only that page plus an O(tables) manifest, so autocommit
77
- is O(1) per insert rather than a whole-table rewrite. Reads stream through a
115
+ a row tail. Commit cost also includes catalog/index maintenance, retained-log
116
+ accounting and the selected durability protocol; it is not uniformly O(1).
117
+ Logged 2.0 workspaces persist index definitions to reduce catalog rewrites.
118
+ Reads stream through a
78
119
  bounded buffer pool ([`storage/cache.rs`](src/storage/cache.rs)), so datasets
79
120
  need not fit in RAM, and opt-in ordered indexes
80
121
  ([`storage/index.rs`](src/storage/index.rs)) turn `WHERE col = value` into a
@@ -84,10 +125,12 @@ warning-free Clippy builds on Linux and Windows. Shipped changes are tracked in
84
125
  each flush `fsync` the data and commit the manifest atomically (write to a temp
85
126
  file, `fsync`, then rename). The default `Fast` mode uses the OS cache only:
86
127
  fast and durable on a clean exit, but not power-loss-safe.
87
- - **Crash-recoverable transactions.** Explicit `BEGIN`, `COMMIT`, and
88
- `ROLLBACK` group filesystem or in-memory writes. Filesystem transactions keep
89
- a synced rollback image and recovery marker; reopening after interruption
90
- restores the last committed state before loading the workspace.
128
+ - **Concurrent transactions.** Native `SharedDatabase` exposes independent
129
+ snapshot readers and bounded FIFO writers. Logged workspaces sync original
130
+ pages before overwriting them and publish an ordered physical change stream.
131
+ Reopening rolls back incomplete writes. Format 6 prevents old binaries from
132
+ bypassing recovery. Existing 1.x images remain readable and migratable.
133
+ See [the concurrency contract](docs/CONCURRENCY.md) for limits and costs.
91
134
  - **Hardened against untrusted input.** Opening a `.pvdb` or workspace, or running
92
135
  a WASM module, validates manifest hashes (no path traversal), bounds-checks CAS
93
136
  offsets and page chains (no out-of-bounds reads or infinite loops on a crafted
@@ -150,21 +193,30 @@ databases.
150
193
  Durability is selectable via `Database::set_durability` (`Fast` OS-cache default,
151
194
  or crash-safe `Sync` with fsync and an atomic manifest).
152
195
 
153
- Measured results and the methodology are in [BENCHMARKS.md](BENCHMARKS.md). In
154
- short, PicoVolt is a page-backed engine with O(1) filesystem appends (autocommit
155
- around 33k rows/s, linear), larger-than-RAM reads through a bounded buffer pool (a
156
- 667-page dataset serves from a 16-page pool), ordered secondary indexes (point
157
- lookups roughly 6,100 times faster than a scan, plus range predicates), MVCC
158
- time-travel, opt-in crash-safe durability (`Durability::Sync`), and a fast
159
- compile-and-publish path (CAS dedup, cooperative columnar compression,
160
- memory-mappable single-file artifacts). Current limits include full-workspace
161
- transaction backups rather than an incremental WAL, adaptive index access within
162
- a left-deep equality-join plan rather than a general SQL planner, and no
163
- concurrent writers.
196
+ Native Rust applications can use the 2.0 concurrency surface through
197
+ `SharedDatabase`. It is a cloneable, bounded worker-thread coordinator with
198
+ explicit read and write transaction handles, FIFO admission, cooperative
199
+ cancellation, and rollback before failed or abandoned writes release the queue.
200
+ Explicit readers execute against independent snapshots while one writer updates
201
+ the workspace. Logged workspaces use format 7 with commit-sequence anchoring;
202
+ use clones of one coordinator for a shared development workspace.
203
+ See [Shared database concurrency](docs/CONCURRENCY.md) for the contract and
204
+ current limits.
205
+
206
+ Measured results and the methodology are in [BENCHMARKS.md](BENCHMARKS.md).
207
+ These measurements describe specific workloads and versions, rather than a
208
+ general throughput guarantee. PicoVolt supports bounded page-cache reads,
209
+ ordered secondary indexes, MVCC time travel and single-file publication.
210
+ Shared filesystem transactions use an incremental page journal; the legacy
211
+ unlogged surface retains full rollback images. Current limits include snapshot
212
+ copy costs, a focused SQL planner and a single writer. The [2.0 benchmark
213
+ baseline](benchmarks/COMPETITORS_2_0_RC3.md) records candidate measurements and
214
+ their limits; see [the concurrency contract](docs/CONCURRENCY.md) for current
215
+ resource costs.
164
216
 
165
217
  ## Maintenance and migration
166
218
 
167
- Cold-page maintenance is explicit in 1.x so the host retains ownership of
219
+ Cold-page maintenance is explicit so the host retains ownership of
168
220
  scheduling and threads:
169
221
 
170
222
  ```sh
@@ -175,8 +227,8 @@ pv inspect ./data.pv --json
175
227
  `Database::compact_step(max_pages)` preserves record addresses, indexes, and
176
228
  complete MVCC history; it never compacts the mutable tail and leaves a page in
177
229
  row form when transposition would not save space. Each pass uses the
178
- crash-recoverable workspace transaction protocol, so allow temporary disk space
179
- for one complete rollback image. Baked-image migration is
230
+ crash-recoverable transaction protocol: allow bounded journal space for logged
231
+ workspaces, or a full rollback image for unlogged workspaces. Baked-image migration is
180
232
  out-of-place and deeply verified before publication:
181
233
 
182
234
  ```sh
@@ -194,7 +246,7 @@ See [Migration and compaction](docs/MIGRATION.md).
194
246
  | **Rust** (crates.io) | `cargo add picovolt` |
195
247
  | **JavaScript / npm** (WebAssembly, browser and Node) | `npm install picovolt` |
196
248
  | **Python** (native wheels) | `python -m pip install picovolt` |
197
- | **Go** (`database/sql` and direct API) | `go get github.com/MiniJe/picovolt/bindings/go@latest`, then provide the matching native C ABI library described in [`bindings/go/`](bindings/go) |
249
+ | **Go** (`database/sql` and direct API) | `go get github.com/MiniJe/picovolt/bindings/go/v2@v2.2.0`, then provide the matching native C ABI library described in [`bindings/go/`](bindings/go) |
198
250
  | **C** | Download the matching `picovolt-capi-*` bundle from the [latest release](https://github.com/MiniJe/picovolt/releases/latest), or run `cargo build --release --features capi` |
199
251
  | **In-memory** (native, no filesystem) | `Database::open_memory()`, export with `bake_to_bytes()` |
200
252
 
@@ -263,7 +315,6 @@ native modules built on the public API. Both are documented in
263
315
  | | |
264
316
  |--|--|
265
317
  | Roadmap | [ROADMAP.md](ROADMAP.md) |
266
- | One-million-download plan | [docs/ROADMAP_1M_DOWNLOADS.md](docs/ROADMAP_1M_DOWNLOADS.md) |
267
318
  | Monetization thesis | [docs/MONETIZATION.md](docs/MONETIZATION.md) |
268
319
  | Enterprise integration foundation | [docs/ENTERPRISE.md](docs/ENTERPRISE.md) |
269
320
  | Platform and file support | [docs/SUPPORT.md](docs/SUPPORT.md) |
@@ -274,10 +325,11 @@ native modules built on the public API. Both are documented in
274
325
 
275
326
  ## License
276
327
 
277
- Licensed under the [Apache License, Version 2.0](LICENSE). Third-party
278
- dependencies are under MIT or Apache-2.0 licenses, and their notices apply to
279
- redistributions (see [`NOTICE`](NOTICE)).
328
+ The 2.1.0 line is prepared under the [PicoVolt Proprietary Lifetime License](LICENSE).
329
+ Earlier Apache-2.0 components retain their existing grants; the original license
330
+ is preserved [here](legal/APACHE-2.0-LEGACY.txt). Third-party licenses and notices
331
+ continue to apply (see [`NOTICE`](NOTICE)). No automatic public publication is enabled.
280
332
 
281
333
  The optional [`compliance`](src/engine/compliance.rs) module is not a license
282
334
  requirement. It is an opt-in helper for applications that want to enforce their
283
- own usage policy. Apache-2.0 places no usage restrictions on PicoVolt itself.
335
+ own usage policy. It does not implement license activation or telemetry.
package/browser.js CHANGED
@@ -1,3 +1,4 @@
1
+ // Modified for PicoVolt 2.1.0 retrieval, 2026-09-11. See legal/COMPONENT-SCOPE-2.1.md.
1
2
  // Durable browser helper backed by the Origin Private File System (OPFS).
2
3
  import { Db } from "./picovolt.js";
3
4
 
@@ -62,6 +63,16 @@ export class PersistentDb {
62
63
  return statement;
63
64
  }
64
65
 
66
+ retrieve(request) {
67
+ this._assertOpen();
68
+ return JSON.parse(this.db.retrieve(JSON.stringify(request)));
69
+ }
70
+
71
+ executeMany(sql, rows) {
72
+ this._assertOpen();
73
+ return JSON.parse(this.db.executeMany(sql, rows)).mutated;
74
+ }
75
+
65
76
  async save() {
66
77
  this._assertOpen();
67
78
  const root = await navigator.storage.getDirectory();