remove DuckDB native integration

ober

0ec12c3cf3722194ccbf636438d5cb6eee745db0

diff --git a/.jerbuild b/.jerbuild
index 0c369cc..ae52341 100644
--- a/.jerbuild
+++ b/.jerbuild
@@ -3,5 +3,5 @@
 (entry "jerbuild.ss")
 (output "jerbuild-local")
 (requires "cc")
-(notes "jerbuild itself is pure Scheme. jerboa-native-rs and DuckDB are not required.")
+(notes "jerbuild itself is pure Scheme. jerboa-native-rs is not required.")
 (libdirs "lib")
diff --git a/Containerfile b/Containerfile
index 1ab564d..cfc9f80 100644
--- a/Containerfile
+++ b/Containerfile
@@ -131,13 +131,11 @@ COPY lib /build/mine/jerboa/lib
 COPY support /build/mine/jerboa/support
 COPY jerboa-native-rs /build/mine/jerboa/jerboa-native-rs
 
-# ── Pre-build libjerboa_native.a (musl, no duckdb) ───────────────────────────
+# ── Pre-build libjerboa_native.a (musl) ──────────────────────────────────────
 # Warms the Cargo registry cache under /build/.cargo so downstream builds that
 # patch regex_native.rs only need to recompile that one module, not fetch crates.
 # Uses CARGO_HOME=/build/.cargo so no /root/.cargo paths leak into the .a.
 RUN cd /build/mine/jerboa/jerboa-native-rs && \
-    grep -q '#\[cfg(feature = "duckdb")\]' src/lib.rs || \
-    sed -i 's/^mod duckdb_native;/#[cfg(feature = "duckdb")]\nmod duckdb_native;/' src/lib.rs && \
     CARGO_HOME=/build/.cargo \
     RUSTFLAGS="--remap-path-prefix /build/.cargo/registry/src=crate --remap-path-prefix /build/mine=src" \
     cargo build --locked --release --target x86_64-unknown-linux-musl --no-default-features && \
diff --git a/Makefile b/Makefile
index 6c376ec..fb7d6ce 100644
--- a/Makefile
+++ b/Makefile
@@ -1149,8 +1149,8 @@ RUST_TARGET_tarm64osx  = aarch64-apple-darwin
 RUST_TARGET_ta6fb      = x86_64-unknown-freebsd
 RUST_TARGET ?= $(RUST_TARGET_$(CHEZ_TARGET_MACHINE))
 
-# Feature set for cross builds. Many `full` features (duckdb, postgres,
-# mozjs) don't cross-compile cleanly; default to a minimal build.
+# Feature set for cross builds. Many `full` features (postgres, mozjs) don't
+# cross-compile cleanly; default to a minimal build.
 # Override e.g. CROSS_NATIVE_FEATURES="tls,crypto" to enable specific ones.
 CROSS_NATIVE_FEATURES ?=
 
@@ -1480,7 +1480,6 @@ TEST_QUARANTINE_FILES := \
 	tests/test-wasm-sandbox.ss \
 	tests/test-workpool.ss \
 	tests/test-wrapper-crypto.ss \
-	tests/test-wrapper-duckdb.ss \
 	tests/test-wrapper-epoll.ss \
 	tests/test-wrapper-inotify.ss \
 	tests/test-wrapper-pcre2.ss \
diff --git a/data/anti-patterns.sexp b/data/anti-patterns.sexp
index ba91ba9..0e19139 100644
--- a/data/anti-patterns.sexp
+++ b/data/anti-patterns.sexp
@@ -917,8 +917,8 @@
      .
      "(?i)\\bpodman\\b.*\\b(linux|build|cross|jerboa|jerbuild)\\b")
    ("severity" . "high")
-   ("tags" "podman" "linux.cons.io" "cross-build"
-     "jerboa" "jerboa-emacs")
+   ("tags" "podman" "linux.cons.io" "cross-build" "jerboa"
+     "jerboa-emacs")
    ("title" . "Do not use containers for Linux builds")
    ("tools" "exec_command"))
  (("advice"
@@ -5888,7 +5888,24 @@
    ("title"
      .
      "ORDER BY sort predicate returns numeric comparator")
+   ("tools" "jerboa_howto" "jerboa_run_tests" "jerboa_verify"))
+ (("advice"
+    .
+    "When debugging fully static binaries, scan both linked objects with nm and Scheme source forms including `(foreign-procedure __collect_safe \"name\" ...)`, `(foreign-entry? \"name\")`, and `(c-lambda (...) ret \"name\")`. Regenerate Sforeign_symbol registrations after all shim objects are compiled.")
+   ("avoid"
+     .
+     "Do not assume a static symbol generator that scans only simple `(foreign-procedure \"name\" ...)` forms covers all Jerboa FFI declarations.")
+   ("id" . "incomplete-static-ffi-source-scan")
+   ("kinds" "ffi" "debug-error")
+   ("pattern"
+     .
+     "no entry for \\\"[^\\\"]+\\\"|foreign-procedure __collect_safe|c-lambda .* \\\"[^\\\"]+\\\"")
+   ("severity" . "high")
+   ("tags" "static" "ffi" "c-lambda" "foreign-procedure"
+     "podman")
+   ("title" . "Incomplete static FFI symbol scan")
    ("tools"
-     "jerboa_howto"
-     "jerboa_run_tests"
-     "jerboa_verify")))
+     "jerboa_check_balance"
+     "jerboa_compile_check"
+     "jerboa_security_scan"))
+ )
diff --git a/data/api-signatures.sexp b/data/api-signatures.sexp
index a17ba5f..1e69483 100644
--- a/data/api-signatures.sexp
+++ b/data/api-signatures.sexp
@@ -1,4 +1,4 @@
-(("errors") ("generated" . "2026-07-28")
+(("errors") ("generated" . "2026-07-30")
   ("modules"
    ("(jerboa build musl)"
      ("exports" "build-musl-binary" "make-musl-cross-target"
@@ -652,44 +652,47 @@
      ("exports" "make-typed-ir-begin" "make-typed-ir-binding"
       "make-typed-ir-break" "make-typed-ir-bytes-build"
       "make-typed-ir-call" "make-typed-ir-continue"
-      "make-typed-ir-for-fold" "make-typed-ir-function-ref"
-      "make-typed-ir-if" "make-typed-ir-lambda"
-      "make-typed-ir-let" "make-typed-ir-lit"
-      "make-typed-ir-match" "make-typed-ir-match-clause"
-      "make-typed-ir-mutable-let" "make-typed-ir-new"
-      "make-typed-ir-object" "make-typed-ir-object-method"
-      "make-typed-ir-return" "make-typed-ir-set"
-      "make-typed-ir-throw" "make-typed-ir-try"
-      "make-typed-ir-try-finally" "make-typed-ir-var"
-      "make-typed-ir-while" "typed-ir-begin-exprs"
-      "typed-ir-begin-source" "typed-ir-begin-type"
-      "typed-ir-begin?" "typed-ir-binding-expr"
-      "typed-ir-binding-name" "typed-ir-binding?"
-      "typed-ir-break-source" "typed-ir-break-type"
-      "typed-ir-break?" "typed-ir-bytes-build-body"
-      "typed-ir-bytes-build-size" "typed-ir-bytes-build-source"
-      "typed-ir-bytes-build-type" "typed-ir-bytes-build-var-name"
-      "typed-ir-bytes-build?" "typed-ir-call-args"
-      "typed-ir-call-info" "typed-ir-call-kind"
-      "typed-ir-call-kinds" "typed-ir-call-operator"
-      "typed-ir-call-source" "typed-ir-call-type" "typed-ir-call?"
+      "make-typed-ir-for" "make-typed-ir-for-fold"
+      "make-typed-ir-function-ref" "make-typed-ir-if"
+      "make-typed-ir-lambda" "make-typed-ir-let"
+      "make-typed-ir-lit" "make-typed-ir-match"
+      "make-typed-ir-match-clause" "make-typed-ir-mutable-let"
+      "make-typed-ir-new" "make-typed-ir-object"
+      "make-typed-ir-object-method" "make-typed-ir-return"
+      "make-typed-ir-set" "make-typed-ir-throw"
+      "make-typed-ir-try" "make-typed-ir-try-finally"
+      "make-typed-ir-var" "make-typed-ir-while"
+      "typed-ir-begin-exprs" "typed-ir-begin-source"
+      "typed-ir-begin-type" "typed-ir-begin?"
+      "typed-ir-binding-expr" "typed-ir-binding-name"
+      "typed-ir-binding?" "typed-ir-break-source"
+      "typed-ir-break-type" "typed-ir-break?"
+      "typed-ir-bytes-build-body" "typed-ir-bytes-build-size"
+      "typed-ir-bytes-build-source" "typed-ir-bytes-build-type"
+      "typed-ir-bytes-build-var-name" "typed-ir-bytes-build?"
+      "typed-ir-call-args" "typed-ir-call-info"
+      "typed-ir-call-kind" "typed-ir-call-kinds"
+      "typed-ir-call-operator" "typed-ir-call-source"
+      "typed-ir-call-type" "typed-ir-call?"
       "typed-ir-continue-source" "typed-ir-continue-type"
-      "typed-ir-continue?" "typed-ir-for-fold-acc-init"
-      "typed-ir-for-fold-acc-name" "typed-ir-for-fold-body"
-      "typed-ir-for-fold-range-end"
+      "typed-ir-continue?" "typed-ir-for-body"
+      "typed-ir-for-fold-acc-init" "typed-ir-for-fold-acc-name"
+      "typed-ir-for-fold-body" "typed-ir-for-fold-range-end"
       "typed-ir-for-fold-range-start" "typed-ir-for-fold-source"
       "typed-ir-for-fold-type" "typed-ir-for-fold-var-name"
-      "typed-ir-for-fold?" "typed-ir-function-ref-name"
-      "typed-ir-function-ref-source" "typed-ir-function-ref-type"
-      "typed-ir-function-ref?" "typed-ir-if-else"
-      "typed-ir-if-source" "typed-ir-if-test" "typed-ir-if-then"
-      "typed-ir-if-type" "typed-ir-if?" "typed-ir-lambda-body"
-      "typed-ir-lambda-params" "typed-ir-lambda-source"
-      "typed-ir-lambda-type" "typed-ir-lambda?"
-      "typed-ir-let-bindings" "typed-ir-let-body"
-      "typed-ir-let-source" "typed-ir-let-type" "typed-ir-let?"
-      "typed-ir-lit-source" "typed-ir-lit-type"
-      "typed-ir-lit-value" "typed-ir-lit?"
+      "typed-ir-for-fold?" "typed-ir-for-range-end"
+      "typed-ir-for-range-start" "typed-ir-for-source"
+      "typed-ir-for-type" "typed-ir-for-var-name" "typed-ir-for?"
+      "typed-ir-function-ref-name" "typed-ir-function-ref-source"
+      "typed-ir-function-ref-type" "typed-ir-function-ref?"
+      "typed-ir-if-else" "typed-ir-if-source" "typed-ir-if-test"
+      "typed-ir-if-then" "typed-ir-if-type" "typed-ir-if?"
+      "typed-ir-lambda-body" "typed-ir-lambda-params"
+      "typed-ir-lambda-source" "typed-ir-lambda-type"
+      "typed-ir-lambda?" "typed-ir-let-bindings"
+      "typed-ir-let-body" "typed-ir-let-source"
+      "typed-ir-let-type" "typed-ir-let?" "typed-ir-lit-source"
+      "typed-ir-lit-type" "typed-ir-lit-value" "typed-ir-lit?"
       "typed-ir-match-clause-bindings"
       "typed-ir-match-clause-body" "typed-ir-match-clause-case"
       "typed-ir-match-clause-field-types" "typed-ir-match-clause?"
@@ -819,8 +822,8 @@
      ("tier" . "core"))
    ("(jerboa typed llvmir)"
      ("exports" "llvm-float-literal" "llvm-function-symbol"
-       "llvm-module-mangle" "llvm-symbol-name"
-       "typed-library-form->llvmir-string"
+       "llvm-module-mangle" "llvm-native-string-runtime?"
+       "llvm-symbol-name" "typed-library-form->llvmir-string"
        "typed-library-forms->llvmir-module"
        "typed-library-forms->llvmir-string"
        "typed-module->llvmir-string"
@@ -2667,33 +2670,6 @@
        "dbi-with-transaction" "make-dbi-connection")
      ("file" . "lib/std/db/dbi.ss")
      ("tier" . "stable"))
-   ("(std db duckdb)"
-     ("exports" "DUCKDB_BLOB" "DUCKDB_BOOLEAN" "DUCKDB_FLOAT"
-      "DUCKDB_INTEGER" "DUCKDB_NULL" "DUCKDB_TEXT" "duckdb-bind!"
-      "duckdb-close" "duckdb-column-name" "duckdb-column-type"
-      "duckdb-eval" "duckdb-exec" "duckdb-execute"
-      "duckdb-finalize" "duckdb-free-result" "duckdb-ncols"
-      "duckdb-nrows" "duckdb-open" "duckdb-prepare" "duckdb-query"
-      "duckdb-read-csv" "duckdb-read-parquet" "duckdb-reset"
-      "duckdb-value" "duckdb-value-is-null?" "duckdb-version"
-      "duckdb-write-csv" "duckdb-write-parquet")
-     ("file" . "lib/std/db/duckdb.ss")
-     ("tier" . "stable"))
-   ("(std db duckdb-native)"
-     ("exports" "DUCKDB_BLOB" "DUCKDB_BOOLEAN" "DUCKDB_FLOAT"
-      "DUCKDB_INTEGER" "DUCKDB_NULL" "DUCKDB_TEXT"
-      "duckdb-bind-blob" "duckdb-bind-bool" "duckdb-bind-double"
-      "duckdb-bind-int" "duckdb-bind-null" "duckdb-bind-text"
-      "duckdb-close" "duckdb-column-name" "duckdb-column-type"
-      "duckdb-eval" "duckdb-exec" "duckdb-execute"
-      "duckdb-finalize" "duckdb-free-result" "duckdb-ncols"
-      "duckdb-nrows" "duckdb-open" "duckdb-prepare" "duckdb-query"
-      "duckdb-reset" "duckdb-value-blob" "duckdb-value-bool"
-      "duckdb-value-double" "duckdb-value-int"
-      "duckdb-value-is-null?" "duckdb-value-text"
-      "duckdb-version")
-     ("file" . "lib/std/db/duckdb-native.ss")
-     ("tier" . "stable"))
    ("(std db leveldb)"
      ("exports" "leveldb-approximate-size" "leveldb-close"
       "leveldb-compact-range" "leveldb-default-options"
@@ -7441,13 +7417,13 @@
      ("file" . "lib/std/zipper.ss")
      ("tier" . "stable")))
   ("source_root" . "/Users/user/mine/jerboa")
-  ("stats" ("modules" . 736) ("parse_errors" . 0) ("symbols" . 11031)
+  ("stats" ("modules" . 734) ("parse_errors" . 0) ("symbols" . 11001)
     ("tiers"
       ("compat" . 47)
       ("core" . 54)
-      ("stable" . 557)
+      ("stable" . 555)
       ("unstable" . 78))
-    ("total_exports" . 14328))
+    ("total_exports" . 14276))
   ("symbol_index" ("%chan-enqueue-raw!" "(std csp)")
    ("&actor-dead" "(std error conditions)")
    ("&actor-timeout" "(std error conditions)")
@@ -7726,16 +7702,6 @@
      "(std prelude)")
    ("DIAG-ERROR" "(lsp types)") ("DIAG-HINT" "(lsp types)")
    ("DIAG-INFO" "(lsp types)") ("DIAG-WARNING" "(lsp types)")
-   ("DUCKDB_BLOB" "(std db duckdb)" "(std db duckdb-native)")
-   ("DUCKDB_BOOLEAN"
-     "(std db duckdb)"
-     "(std db duckdb-native)")
-   ("DUCKDB_FLOAT" "(std db duckdb)" "(std db duckdb-native)")
-   ("DUCKDB_INTEGER"
-     "(std db duckdb)"
-     "(std db duckdb-native)")
-   ("DUCKDB_NULL" "(std db duckdb)" "(std db duckdb-native)")
-   ("DUCKDB_TEXT" "(std db duckdb)" "(std db duckdb-native)")
    ("Datafiable" "(jerboa clojure)" "(std datafy)")
    ("E2BIG" "(std os errno)") ("EACCES" "(std os errno)")
    ("EAGAIN" "(std os errno)") ("EBADF" "(std os errno)")
@@ -10558,55 +10524,6 @@
    ("dsupervisor-start-child!" "(std actor cluster)")
    ("dsupervisor-stop-child!" "(std actor cluster)")
    ("dsupervisor-which-children" "(std actor cluster)")
-   ("duckdb-bind!" "(std db duckdb)")
-   ("duckdb-bind-blob" "(std db duckdb-native)")
-   ("duckdb-bind-bool" "(std db duckdb-native)")
-   ("duckdb-bind-double" "(std db duckdb-native)")
-   ("duckdb-bind-int" "(std db duckdb-native)")
-   ("duckdb-bind-null" "(std db duckdb-native)")
-   ("duckdb-bind-text" "(std db duckdb-native)")
-   ("duckdb-close" "(std db duckdb)" "(std db duckdb-native)")
-   ("duckdb-column-name"
-     "(std db duckdb)"
-     "(std db duckdb-native)")
-   ("duckdb-column-type"
-     "(std db duckdb)"
-     "(std db duckdb-native)")
-   ("duckdb-eval" "(std db duckdb)" "(std db duckdb-native)")
-   ("duckdb-exec" "(std db duckdb)" "(std db duckdb-native)")
-   ("duckdb-execute"
-     "(std db duckdb)"
-     "(std db duckdb-native)")
-   ("duckdb-finalize"
-     "(std db duckdb)"
-     "(std db duckdb-native)")
-   ("duckdb-free-result"
-     "(std db duckdb)"
-     "(std db duckdb-native)")
-   ("duckdb-ncols" "(std db duckdb)" "(std db duckdb-native)")
-   ("duckdb-nrows" "(std db duckdb)" "(std db duckdb-native)")
-   ("duckdb-open" "(std db duckdb)" "(std db duckdb-native)")
-   ("duckdb-prepare"
-     "(std db duckdb)"
-     "(std db duckdb-native)")
-   ("duckdb-query" "(std db duckdb)" "(std db duckdb-native)")
-   ("duckdb-read-csv" "(std db duckdb)")
-   ("duckdb-read-parquet" "(std db duckdb)")
-   ("duckdb-reset" "(std db duckdb)" "(std db duckdb-native)")
-   ("duckdb-value" "(std db duckdb)")
-   ("duckdb-value-blob" "(std db duckdb-native)")
-   ("duckdb-value-bool" "(std db duckdb-native)")
-   ("duckdb-value-double" "(std db duckdb-native)")
-   ("duckdb-value-int" "(std db duckdb-native)")
-   ("duckdb-value-is-null?"
-     "(std db duckdb)"
-     "(std db duckdb-native)")
-   ("duckdb-value-text" "(std db duckdb-native)")
-   ("duckdb-version"
-     "(std db duckdb)"
-     "(std db duckdb-native)")
-   ("duckdb-write-csv" "(std db duckdb)")
-   ("duckdb-write-parquet" "(std db duckdb)")
    ("dump-ir-between-passes!" "(std compiler passes)")
    ("dump-specialization-stats" "(std compiler partial-eval)")
    ("duplicates"
@@ -13237,6 +13154,7 @@
    ("llvm-float-literal" "(jerboa typed llvmir)")
    ("llvm-function-symbol" "(jerboa typed llvmir)")
    ("llvm-module-mangle" "(jerboa typed llvmir)")
+   ("llvm-native-string-runtime?" "(jerboa typed llvmir)")
    ("llvm-symbol-name" "(jerboa typed llvmir)")
    ("lmap" "(std lazy)") ("lnull" "(std lazy)")
    ("lnull?" "(std lazy)")
@@ -14061,6 +13979,7 @@
    ("make-typed-ir-bytes-build" "(jerboa typed core)")
    ("make-typed-ir-call" "(jerboa typed core)")
    ("make-typed-ir-continue" "(jerboa typed core)")
+   ("make-typed-ir-for" "(jerboa typed core)")
    ("make-typed-ir-for-fold" "(jerboa typed core)")
    ("make-typed-ir-function-ref" "(jerboa typed core)")
    ("make-typed-ir-if" "(jerboa typed core)")
@@ -19287,6 +19206,7 @@
    ("typed-ir-continue-source" "(jerboa typed core)")
    ("typed-ir-continue-type" "(jerboa typed core)")
    ("typed-ir-continue?" "(jerboa typed core)")
+   ("typed-ir-for-body" "(jerboa typed core)")
    ("typed-ir-for-fold-acc-init" "(jerboa typed core)")
    ("typed-ir-for-fold-acc-name" "(jerboa typed core)")
    ("typed-ir-for-fold-body" "(jerboa typed core)")
@@ -19296,6 +19216,12 @@
    ("typed-ir-for-fold-type" "(jerboa typed core)")
    ("typed-ir-for-fold-var-name" "(jerboa typed core)")
    ("typed-ir-for-fold?" "(jerboa typed core)")
+   ("typed-ir-for-range-end" "(jerboa typed core)")
+   ("typed-ir-for-range-start" "(jerboa typed core)")
+   ("typed-ir-for-source" "(jerboa typed core)")
+   ("typed-ir-for-type" "(jerboa typed core)")
+   ("typed-ir-for-var-name" "(jerboa typed core)")
+   ("typed-ir-for?" "(jerboa typed core)")
    ("typed-ir-function-ref-name" "(jerboa typed core)")
    ("typed-ir-function-ref-source" "(jerboa typed core)")
    ("typed-ir-function-ref-type" "(jerboa typed core)")
diff --git a/data/error-fixes.sexp b/data/error-fixes.sexp
index 1ceb7e2..167b83f 100644
--- a/data/error-fixes.sexp
+++ b/data/error-fixes.sexp
@@ -3336,4 +3336,18 @@
    ("pattern"
      .
      "string->number accepts non-decimal radix prefixes (#x10, #o10, #b10) and scientific notation (1e5).")
-   ("type" . "security-scan")))
+   ("type" . "security-scan"))
+ (("code_example"
+    .
+    "gcc -c -O2 -o jemacs-qt-jerboa-native-stubs.o support/jerboa_native_stubs.c\n# link jemacs-qt-jerboa-native-stubs.o and regenerate Sforeign_symbol table from linked objects before final link")
+   ("explanation"
+     .
+     "Newer (std native) probes jerboa_last_error via foreign-procedure to decide whether native symbols are embedded. If the static binary does not include that stub object, the probe fails and jerboa-native-load! falls through to the bundled-library path, which is absent in single-file static builds.")
+   ("fix"
+     .
+     "For static jemacs/Qt binaries that intentionally do not ship libjerboa_native, compile and link support/jerboa_native_stubs.c so jerboa_last_error is a registered static symbol before (std native) initializes. Ensure the static symbol generator scans linked objects after the stub object is built.")
+   ("id" . "static-qt-libjerboa-native-loader-missing")
+   ("pattern"
+     .
+     "jerboa-native-load!.*libjerboa_native was not found beneath JERBOA_HOME/lib")
+   ("type" . "runtime")))
diff --git a/docs/reviews/2026-07-27-native-export-review.sexp b/docs/reviews/2026-07-27-native-export-review.sexp
index 5ce13f6..139b1a7 100644
--- a/docs/reviews/2026-07-27-native-export-review.sexp
+++ b/docs/reviews/2026-07-27-native-export-review.sexp
@@ -2,7 +2,7 @@
   (schema "jerboa.native-export-review/1")
   (generated-by "support/check-native-export-review.sh")
   (policy scheme-callers-or-documented)
-  (summary (exports 194) (scheme-referenced 187) (no-scheme-reference 7))
+  (summary (exports 169) (scheme-referenced 162) (no-scheme-reference 7))
   (exports
     (export (symbol "ed25519_derive_pubkey_standalone") (file "jerboa-native-rs/src/ed25519.rs") (line 50) (scheme-callers 0 (none)))
     (export (symbol "ed25519_sign_standalone") (file "jerboa-native-rs/src/ed25519.rs") (line 9) (scheme-callers 0 (none)))
@@ -29,31 +29,6 @@
     (export (symbol "jerboa_chacha20_open") (file "jerboa-native-rs/src/crypto.rs") (line 606) (scheme-callers 1 (caller (file "lib/std/crypto/native-rust.ss") (line 257))))
     (export (symbol "jerboa_chacha20_seal") (file "jerboa-native-rs/src/crypto.rs") (line 519) (scheme-callers 1 (caller (file "lib/std/crypto/native-rust.ss") (line 236))))
     (export (symbol "jerboa_deflate") (file "jerboa-native-rs/src/compress.rs") (line 9) (scheme-callers 1 (caller (file "lib/std/compress/native-rust.ss") (line 61))))
-    (export (symbol "jerboa_duckdb_bind_blob") (file "jerboa-native-rs/src/duckdb_native.rs") (line 443) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 62))))
-    (export (symbol "jerboa_duckdb_bind_bool") (file "jerboa-native-rs/src/duckdb_native.rs") (line 500) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 66))))
-    (export (symbol "jerboa_duckdb_bind_double") (file "jerboa-native-rs/src/duckdb_native.rs") (line 386) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 58))))
-    (export (symbol "jerboa_duckdb_bind_int") (file "jerboa-native-rs/src/duckdb_native.rs") (line 362) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 56))))
-    (export (symbol "jerboa_duckdb_bind_null") (file "jerboa-native-rs/src/duckdb_native.rs") (line 476) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 64))))
-    (export (symbol "jerboa_duckdb_bind_text") (file "jerboa-native-rs/src/duckdb_native.rs") (line 410) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 60))))
-    (export (symbol "jerboa_duckdb_close") (file "jerboa-native-rs/src/duckdb_native.rs") (line 227) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 45))))
-    (export (symbol "jerboa_duckdb_column_name") (file "jerboa-native-rs/src/duckdb_native.rs") (line 854) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 76))))
-    (export (symbol "jerboa_duckdb_column_type") (file "jerboa-native-rs/src/duckdb_native.rs") (line 896) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 79))))
-    (export (symbol "jerboa_duckdb_exec") (file "jerboa-native-rs/src/duckdb_native.rs") (line 263) (scheme-callers 2 (caller (file "lib/std/db/duckdb-native.ss") (line 47)) (caller (file "lib/std/db/duckdb-native.ss") (line 69))))
-    (export (symbol "jerboa_duckdb_execute") (file "jerboa-native-rs/src/duckdb_native.rs") (line 597) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 69))))
-    (export (symbol "jerboa_duckdb_finalize") (file "jerboa-native-rs/src/duckdb_native.rs") (line 1123) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 51))))
-    (export (symbol "jerboa_duckdb_free_result") (file "jerboa-native-rs/src/duckdb_native.rs") (line 1106) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 96))))
-    (export (symbol "jerboa_duckdb_ncols") (file "jerboa-native-rs/src/duckdb_native.rs") (line 842) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 74))))
-    (export (symbol "jerboa_duckdb_nrows") (file "jerboa-native-rs/src/duckdb_native.rs") (line 830) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 72))))
-    (export (symbol "jerboa_duckdb_open") (file "jerboa-native-rs/src/duckdb_native.rs") (line 184) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 43))))
-    (export (symbol "jerboa_duckdb_prepare") (file "jerboa-native-rs/src/duckdb_native.rs") (line 295) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 49))))
-    (export (symbol "jerboa_duckdb_reset") (file "jerboa-native-rs/src/duckdb_native.rs") (line 1141) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 53))))
-    (export (symbol "jerboa_duckdb_value_blob") (file "jerboa-native-rs/src/duckdb_native.rs") (line 1068) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 92))))
-    (export (symbol "jerboa_duckdb_value_bool") (file "jerboa-native-rs/src/duckdb_native.rs") (line 988) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 87))))
-    (export (symbol "jerboa_duckdb_value_double") (file "jerboa-native-rs/src/duckdb_native.rs") (line 966) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 85))))
-    (export (symbol "jerboa_duckdb_value_int") (file "jerboa-native-rs/src/duckdb_native.rs") (line 938) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 83))))
-    (export (symbol "jerboa_duckdb_value_is_null") (file "jerboa-native-rs/src/duckdb_native.rs") (line 917) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 81))))
-    (export (symbol "jerboa_duckdb_value_text") (file "jerboa-native-rs/src/duckdb_native.rs") (line 1022) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 89))))
-    (export (symbol "jerboa_duckdb_version") (file "jerboa-native-rs/src/duckdb_native.rs") (line 1166) (scheme-callers 1 (caller (file "lib/std/db/duckdb-native.ss") (line 98))))
     (export (symbol "jerboa_epoll_close") (file "jerboa-native-rs/src/epoll.rs") (line 106) (scheme-callers 1 (caller (file "lib/std/os/epoll-native.ss") (line 59))))
     (export (symbol "jerboa_epoll_create") (file "jerboa-native-rs/src/epoll.rs") (line 7) (scheme-callers 2 (caller (file "lib/std/os/epoll-native.ss") (line 30)) (caller (file "lib/std/os/epoll-native.ss") (line 50))))
     (export (symbol "jerboa_epoll_ctl") (file "jerboa-native-rs/src/epoll.rs") (line 25) (scheme-callers 1 (caller (file "lib/std/os/epoll-native.ss") (line 53))))
diff --git a/jerboa-native-rs/Cargo.lock b/jerboa-native-rs/Cargo.lock
index 7d24f94..de3fb26 100644
--- a/jerboa-native-rs/Cargo.lock
+++ b/jerboa-native-rs/Cargo.lock
@@ -10,24 +10,11 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
 
 [[package]]
 name = "ahash"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
-dependencies = [
- "getrandom 0.2.17",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "ahash"
 version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
 dependencies = [
  "cfg-if",
- "const-random",
- "getrandom 0.3.4",
  "once_cell",
  "version_check",
  "zerocopy",
@@ -43,24 +30,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "android_system_properties"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "arbitrary"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
-dependencies = [
- "derive_arbitrary",
-]
-
-[[package]]
 name = "argon2"
 version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -79,169 +48,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
 
 [[package]]
-name = "arrow"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d441fdda254b65f3e9025910eb2c2066b6295d9c8ed409522b8d2ace1ff8574c"
-dependencies = [
- "arrow-arith",
- "arrow-array",
- "arrow-buffer",
- "arrow-cast",
- "arrow-data",
- "arrow-ord",
- "arrow-row",
- "arrow-schema",
- "arrow-select",
- "arrow-string",
-]
-
-[[package]]
-name = "arrow-arith"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ced5406f8b720cc0bc3aa9cf5758f93e8593cda5490677aa194e4b4b383f9a59"
-dependencies = [
- "arrow-array",
- "arrow-buffer",
- "arrow-data",
- "arrow-schema",
- "chrono",
- "num-traits",
-]
-
-[[package]]
-name = "arrow-array"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "772bd34cacdda8baec9418d80d23d0fb4d50ef0735685bd45158b83dfeb6e62d"
-dependencies = [
- "ahash 0.8.12",
- "arrow-buffer",
- "arrow-data",
- "arrow-schema",
- "chrono",
- "half",
- "hashbrown 0.16.1",
- "num-complex",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "arrow-buffer"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "898f4cf1e9598fdb77f356fdf2134feedfd0ee8d5a4e0a5f573e7d0aec16baa4"
-dependencies = [
- "bytes",
- "half",
- "num-bigint",
- "num-traits",
-]
-
-[[package]]
-name = "arrow-cast"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0127816c96533d20fc938729f48c52d3e48f99717e7a0b5ade77d742510736d"
-dependencies = [
- "arrow-array",
- "arrow-buffer",
- "arrow-data",
- "arrow-ord",
- "arrow-schema",
- "arrow-select",
- "atoi",
- "base64",
- "chrono",
- "comfy-table",
- "half",
- "lexical-core",
- "num-traits",
- "ryu",
-]
-
-[[package]]
-name = "arrow-data"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42d10beeab2b1c3bb0b53a00f7c944a178b622173a5c7bcabc3cb45d90238df4"
-dependencies = [
- "arrow-buffer",
- "arrow-schema",
- "half",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "arrow-ord"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "763a7ba279b20b52dad300e68cfc37c17efa65e68623169076855b3a9e941ca5"
-dependencies = [
- "arrow-array",
- "arrow-buffer",
- "arrow-data",
- "arrow-schema",
- "arrow-select",
-]
-
-[[package]]
-name = "arrow-row"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14fe367802f16d7668163ff647830258e6e0aeea9a4d79aaedf273af3bdcd3e"
-dependencies = [
- "arrow-array",
- "arrow-buffer",
- "arrow-data",
- "arrow-schema",
- "half",
-]
-
-[[package]]
-name = "arrow-schema"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c30a1365d7a7dc50cc847e54154e6af49e4c4b0fddc9f607b687f29212082743"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "arrow-select"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78694888660a9e8ac949853db393af2a8b8fc82c19ce333132dfa2e72cc1a7fe"
-dependencies = [
- "ahash 0.8.12",
- "arrow-array",
- "arrow-buffer",
- "arrow-data",
- "arrow-schema",
- "num-traits",
-]
-
-[[package]]
-name = "arrow-string"
-version = "58.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61e04a01f8bb73ce54437514c5fd3ee2aa3e8abe4c777ee5cc55853b1652f79e"
-dependencies = [
- "arrow-array",
- "arrow-buffer",
- "arrow-data",
- "arrow-schema",
- "arrow-select",
- "memchr",
- "num-traits",
- "regex",
- "regex-syntax",
-]
-
-[[package]]
 name = "asn1-rs"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -253,7 +59,7 @@ dependencies = [
  "nom",
  "num-traits",
  "rusticata-macros",
- "thiserror 1.0.69",
+ "thiserror",
  "time",
 ]
 
@@ -265,7 +71,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.117",
+ "syn",
  "synstructure",
 ]
 
@@ -277,7 +83,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.117",
+ "syn",
 ]
 
 [[package]]
@@ -288,25 +94,10 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.117",
-]
-
-[[package]]
-name = "atoi"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528"
-dependencies = [
- "num-traits",
+ "syn",
 ]
 
 [[package]]
-name = "atomic-waker"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
-
-[[package]]
 name = "autocfg"
 version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -339,7 +130,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.117",
+ "syn",
 ]
 
 [[package]]
@@ -349,18 +140,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
 
 [[package]]
-name = "bitvec"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
-dependencies = [
- "funty",
- "radium",
- "tap",
- "wyz",
-]
-
-[[package]]
 name = "blake2"
 version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -388,58 +167,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "borsh"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a"
-dependencies = [
- "borsh-derive",
- "bytes",
- "cfg_aliases",
-]
-
-[[package]]
-name = "borsh-derive"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59"
-dependencies = [
- "once_cell",
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn 2.0.117",
-]
-
-[[package]]
 name = "bumpalo"
 version = "3.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
 
 [[package]]
-name = "bytecheck"
-version = "0.6.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
-dependencies = [
- "bytecheck_derive",
- "ptr_meta",
- "simdutf8",
-]
-
-[[package]]
-name = "bytecheck_derive"
-version = "0.6.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "byteorder"
 version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -452,20 +185,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
 
 [[package]]
-name = "cast"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
-
-[[package]]
 name = "cc"
 version = "1.2.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423"
 dependencies = [
  "find-msvc-tools",
- "jobserver",
- "libc",
  "shlex",
 ]
 
@@ -485,12 +210,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
 
 [[package]]
-name = "cfg_aliases"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
-
-[[package]]
 name = "chacha20"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -502,17 +221,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "chrono"
-version = "0.4.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0"
-dependencies = [
- "iana-time-zone",
- "num-traits",
- "windows-link",
-]
-
-[[package]]
 name = "cipher"
 version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -540,16 +248,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a"
 
 [[package]]
-name = "comfy-table"
-version = "7.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "958c5d6ecf1f214b4c2bbbbf6ab9523a864bd136dcf71a7e8904799acfe1ad47"
-dependencies = [
- "unicode-segmentation",
- "unicode-width",
-]
-
-[[package]]
 name = "const-oid"
 version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -562,32 +260,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c"
 
 [[package]]
-name = "const-random"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
-dependencies = [
- "const-random-macro",
-]
-
-[[package]]
-name = "const-random-macro"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
-dependencies = [
- "getrandom 0.2.17",
- "once_cell",
- "tiny-keccak",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
-
-[[package]]
 name = "cpufeatures"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -615,12 +287,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "crunchy"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
-
-[[package]]
 name = "crypto-common"
 version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -672,7 +338,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.117",
+ "syn",
 ]
 
 [[package]]
@@ -715,7 +381,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.117",
+ "syn",
 ]
 
 [[package]]
@@ -728,17 +394,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "derive_arbitrary"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.117",
-]
-
-[[package]]
 name = "digest"
 version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -769,7 +424,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.117",
+ "syn",
 ]
 
 [[package]]
@@ -779,23 +434,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
 
 [[package]]
-name = "duckdb"
-version = "1.10501.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f13bc6d6487032fc2825a62ef8b4924b2378a2eb3166e132e5f3141ae9dd633f"
-dependencies = [
- "arrow",
- "cast",
- "fallible-iterator 0.3.0",
- "fallible-streaming-iterator",
- "hashlink 0.10.0",
- "libduckdb-sys",
- "num-integer",
- "rust_decimal",
- "strum",
-]
-
-[[package]]
 name = "ed25519"
 version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -923,7 +561,6 @@ checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
- "zlib-rs",
 ]
 
 [[package]]
@@ -933,21 +570,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
 
 [[package]]
-name = "form_urlencoded"
-version = "1.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "funty"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
-
-[[package]]
 name = "futures-channel"
 version = "0.3.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -964,12 +586,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
 
 [[package]]
-name = "futures-io"
-version = "0.3.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
-
-[[package]]
 name = "futures-sink"
 version = "0.3.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -988,12 +604,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"