bend-kit-postgres@0.1.0.2 relies on unsafe/foreign
0xf63ce82892c02964729ebb2a79be513f
Postgres frontend/backend protocol 3.0 messages over Bytes, and an incremental reader of backend messages.
bend-kit-postgres@0.1.0.2 by paymog
Earlier versions (2)
- bend-kit-postgres@0.1.0.1 2026-09-29
- bend-kit-postgres@0.1.0.0 2026-09-29
- Published
- 2026-10-09
- Size
- 64,150 bytes, 3 files
- License
- MIT-0 (no LICENSE file; the hub's default)
- Declarations
- 0 laws (0 proved), 234 defs, 21 types
Import
import bend-kit-postgres@0.1.0.2/codec.bend as Codec import 0xf63ce82892c02964729ebb2a79be513f/codec.bend as Codec import bend-kit-postgres@0.1.0.2/postgres.bend as Postgres import 0xf63ce82892c02964729ebb2a79be513f/postgres.bend as Postgres import bend-kit-postgres@0.1.0.2/scram.bend as Scram import 0xf63ce82892c02964729ebb2a79be513f/scram.bend as Scram
Modules
- codec.bend 177 declarations — Postgres frontend/backend protocol 3.0 messages over Bytes, and an incremental reader of backend messages.
- postgres.bend 100 declarations — Postgres client: protocol 3.0 over TCP or TLS, SCRAM-SHA-256, prepared queries, and a pool. Source: https://github.com/paymog/bend-kit/tree/main/postgres
- scram.bend 42 declarations — SCRAM-SHA-256 (RFC 5802, RFC 7677) client for PostgreSQL SASL authentication, without channel binding.
Dependencies
- bend-kit-bytes@0.3.1.0 via
codec.bend: import bend-kit-bytes@0.3.1.0/bytes.bend as Bytes - bend-kit-wire@0.4.6.1 via
postgres.bend: import bend-kit-wire@0.4.6.1/wire.bend as Wire - bend-kit-dns@0.6.0.2 via
postgres.bend: import bend-kit-dns@0.6.0.2/dns.bend as Dns - bend-kit-crypto@0.2.2.1 via
scram.bend: import bend-kit-crypto@0.2.2.1/crypto.bend as Crypto
Dependents
No package in this build imports it.
Status on bend 2.0.36
| File | Status | Checker says | Time |
|---|---|---|---|
| codec.bend | checks | ALL PROOFS CHECK | 1.3 s |
| postgres.bend | relies on unsafe/foreign | 129 defs rely on unsafe or foreign code defs: 0x1afdf90dbe41c30b1df4594db039b02a/wire.connect, 0x1afdf90dbe41c30b1df4594db039b02a/wire.accept.deadline, 0x1afdf90dbe41c30b1df4594db039b02a/wire.recv, 0x1afdf90dbe41c30b1df4594db039b02a/wire.send, 0x1afdf90dbe41c30b1df4594db039b02a/wire.recv_from, 0x1afdf90dbe41c30b1df4594db039b02a/wire.send_to, 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.connect, 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.connect.cert, 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.connect.alpn, 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.connect.ca, 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.connect.alpn.ca, 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.send, 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.recv, 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.close, 0x1afdf90dbe41c30b1df4594db039b02a/wire.recv.words, 0x1afdf90dbe41c30b1df4594db039b02a/wire.send.words, 0x1afdf90dbe41c30b1df4594db039b02a/wire.send.words.deadline, 0x1afdf90dbe41c30b1df4594db039b02a/wire.recv_from.words, 0x1afdf90dbe41c30b1df4594db039b02a/wire.send_to.words, 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.recv.words, 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.send.words, 0x9bf2c4100bf9328348d215e7ae1657de/dns.try.sent, 0x9bf2c4100bf9328348d215e7ae1657de/dns.try.send, 0x9bf2c4100bf9328348d215e7ae1657de/dns.try.once, 0x9bf2c4100bf9328348d215e7ae1657de/dns.tries, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.sock, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.id, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.ns, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.at, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.n3, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.n2b, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.n2, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.n1b, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.list, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.read, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.conf, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.dns, 0x9bf2c4100bf9328348d215e7ae1657de/dns.lookup.all, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.os, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.dns, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.from, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.text, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.opened, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.hosts, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.pick, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.ask, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.pure.pick, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.pure, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.pure, 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.digest.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha256.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha512.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha1.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.hmac.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.hkdf.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.pbkdf2.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.scrypt.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.random.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.eq.ct.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.sign.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.verify.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.verify.jwk.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.sign.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.verify.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.verify.jwk.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.aead.seal.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.aead.open.words, 0xf63ce82892c02964729ebb2a79be513f/scram.first, 0xf63ce82892c02964729ebb2a79be513f/scram.hmac.of, 0xf63ce82892c02964729ebb2a79be513f/scram.hmac, 0xf63ce82892c02964729ebb2a79be513f/scram.sha.of, 0xf63ce82892c02964729ebb2a79be513f/scram.sha, 0xf63ce82892c02964729ebb2a79be513f/scram.pbkdf2.of, 0xf63ce82892c02964729ebb2a79be513f/scram.pbkdf2, 0xf63ce82892c02964729ebb2a79be513f/scram.eq.of, 0xf63ce82892c02964729ebb2a79be513f/scram.respond.of, 0xf63ce82892c02964729ebb2a79be513f/scram.respond, 0xf63ce82892c02964729ebb2a79be513f/scram.verify.of, 0xf63ce82892c02964729ebb2a79be513f/scram.verify, io.close, io.send, io.write, io.recv, io.close.after, close, abort, reject, send.after, send, read.fail, read.loop, read, reply, exchange, ready.loop, ready, auth.done, sasl.verified, sasl.final, sasl.respond, sasl.cont, sasl.first, sasl, auth, startup, tls.done, ssl.byte, ssl.answer, ssl.sent, ssl.ask, dialed, dial.after, dial.more, dial, connect.to, connect, collect, query, pool.got, pool.get, conns.cut, pool.keep, pool.clean, pool.left, pool.put, pool.close.go, pool.closeoutputSOME PROOFS FAIL Error: 129 defs rely on unsafe or foreign code: - 0x1afdf90dbe41c30b1df4594db039b02a/wire.connect - 0x1afdf90dbe41c30b1df4594db039b02a/wire.accept.deadline - 0x1afdf90dbe41c30b1df4594db039b02a/wire.recv - 0x1afdf90dbe41c30b1df4594db039b02a/wire.send - 0x1afdf90dbe41c30b1df4594db039b02a/wire.recv_from - 0x1afdf90dbe41c30b1df4594db039b02a/wire.send_to - 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.connect - 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.connect.cert - 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.connect.alpn - 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.connect.ca - 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.connect.alpn.ca - 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.send - 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.recv - 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.close - 0x1afdf90dbe41c30b1df4594db039b02a/wire.recv.words - 0x1afdf90dbe41c30b1df4594db039b02a/wire.send.words - 0x1afdf90dbe41c30b1df4594db039b02a/wire.send.words.deadline - 0x1afdf90dbe41c30b1df4594db039b02a/wire.recv_from.words - 0x1afdf90dbe41c30b1df4594db039b02a/wire.send_to.words - 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.recv.words - 0x1afdf90dbe41c30b1df4594db039b02a/wire.tls.send.words - 0x9bf2c4100bf9328348d215e7ae1657de/dns.try.sent - 0x9bf2c4100bf9328348d215e7ae1657de/dns.try.send - 0x9bf2c4100bf9328348d215e7ae1657de/dns.try.once - 0x9bf2c4100bf9328348d215e7ae1657de/dns.tries - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.sock - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.id - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.ns - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.at - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.n3 - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.n2b - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.n2 - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.n1b - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.list - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.read - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.conf - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.dns - 0x9bf2c4100bf9328348d215e7ae1657de/dns.lookup.all - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.os - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.dns - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.from - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.text - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.opened - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.hosts - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.pick - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.ask - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.pure.pick - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.all.pure - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve.pure - 0x9bf2c4100bf9328348d215e7ae1657de/dns.resolve - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.digest.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha256.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha512.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha1.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.hmac.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.hkdf.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.pbkdf2.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.scrypt.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.random.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.eq.ct.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.sign.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.verify.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.verify.jwk.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.sign.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.verify.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.verify.jwk.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.aead.seal.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.aead.open.words - 0xf63ce82892c02964729ebb2a79be513f/scram.first - 0xf63ce82892c02964729ebb2a79be513f/scram.hmac.of - 0xf63ce82892c02964729ebb2a79be513f/scram.hmac - 0xf63ce82892c02964729ebb2a79be513f/scram.sha.of - 0xf63ce82892c02964729ebb2a79be513f/scram.sha - 0xf63ce82892c02964729ebb2a79be513f/scram.pbkdf2.of - 0xf63ce82892c02964729ebb2a79be513f/scram.pbkdf2 - 0xf63ce82892c02964729ebb2a79be513f/scram.eq.of - 0xf63ce82892c02964729ebb2a79be513f/scram.respond.of - 0xf63ce82892c02964729ebb2a79be513f/scram.respond - 0xf63ce82892c02964729ebb2a79be513f/scram.verify.of - 0xf63ce82892c02964729ebb2a79be513f/scram.verify - io.close - io.send - io.write - io.recv - io.close.after - close - abort - reject - send.after - send - read.fail - read.loop - read - reply - exchange - ready.loop - ready - auth.done - sasl.verified - sasl.final - sasl.respond - sasl.cont - sasl.first - sasl - auth - startup - tls.done - ssl.byte - ssl.answer - ssl.sent - ssl.ask - dialed - dial.after - dial.more - dial - connect.to - connect - collect - query - pool.got - pool.get - conns.cut - pool.keep - pool.clean - pool.left - pool.put - pool.close.go - pool.close | 1.9 s |
| scram.bend | relies on unsafe/foreign | 30 defs rely on unsafe or foreign code defs: 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.digest.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha256.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha512.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha1.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.hmac.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.hkdf.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.pbkdf2.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.scrypt.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.random.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.eq.ct.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.sign.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.verify.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.verify.jwk.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.sign.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.verify.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.verify.jwk.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.aead.seal.words, 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.aead.open.words, first, hmac.of, hmac, sha.of, sha, pbkdf2.of, pbkdf2, eq.of, respond.of, respond, verify.of, verifyoutputSOME PROOFS FAIL Error: 30 defs rely on unsafe or foreign code: - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.digest.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha256.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha512.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.sha1.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.hmac.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.hkdf.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.pbkdf2.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.scrypt.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.random.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.eq.ct.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.sign.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.verify.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.rsa.verify.jwk.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.sign.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.verify.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.ecdsa.verify.jwk.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.aead.seal.words - 0xf33eec520d9fe4851fd0d1e29eaf0166/crypto.aead.open.words - first - hmac.of - hmac - sha.of - sha - pbkdf2.of - pbkdf2 - eq.of - respond.of - respond - verify.of - verify | 1.0 s |