bend-kit-postgres@0.1.0.0 relies on unsafe/foreign
0x4a157af9bb54efff1723341b7254fc4a
Postgres frontend/backend protocol 3.0 messages over Bytes, and an incremental reader of backend messages.
bend-kit-postgres@0.1.0.0 by paymog
Other versions (2)
- bend-kit-postgres@0.1.0.2 2026-10-09 latest
- bend-kit-postgres@0.1.0.1 2026-09-29
- Published
- 2026-09-29
- 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.0/codec.bend as Codec import 0x4a157af9bb54efff1723341b7254fc4a/codec.bend as Codec import bend-kit-postgres@0.1.0.0/postgres.bend as Postgres import 0x4a157af9bb54efff1723341b7254fc4a/postgres.bend as Postgres import bend-kit-postgres@0.1.0.0/scram.bend as Scram import 0x4a157af9bb54efff1723341b7254fc4a/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.2.0 via
postgres.bend: import bend-kit-wire@0.4.2.0/wire.bend as Wire - bend-kit-dns@0.4.0.2 via
postgres.bend: import bend-kit-dns@0.4.0.2/dns.bend as Dns - bend-kit-crypto@0.1.1.0 via
scram.bend: import bend-kit-crypto@0.1.1.0/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.5 s |
| postgres.bend | relies on unsafe/foreign | 127 defs rely on unsafe or foreign code defs: 0xa3dc0f6e3963608e4608a1017272cf4f/wire.connect, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.recv, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.send, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.recv_from, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.send_to, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.connect, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.connect.cert, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.connect.alpn, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.send, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.recv, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.close, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.recv.words, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.send.words, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.recv.words, 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.send.words, 0x096635686408886b7d907f16c4550317/wire.connect, 0x096635686408886b7d907f16c4550317/wire.recv, 0x096635686408886b7d907f16c4550317/wire.send, 0x096635686408886b7d907f16c4550317/wire.recv_from, 0x096635686408886b7d907f16c4550317/wire.send_to, 0x096635686408886b7d907f16c4550317/wire.tls.connect, 0x096635686408886b7d907f16c4550317/wire.tls.send, 0x096635686408886b7d907f16c4550317/wire.tls.recv, 0x096635686408886b7d907f16c4550317/wire.tls.close, 0x096635686408886b7d907f16c4550317/wire.recv.words, 0x096635686408886b7d907f16c4550317/wire.send.words, 0x096635686408886b7d907f16c4550317/wire.tls.recv.words, 0x096635686408886b7d907f16c4550317/wire.tls.send.words, 0x3032c733631327d69c18d386991b6af3/dns.try.sent, 0x3032c733631327d69c18d386991b6af3/dns.try.once, 0x3032c733631327d69c18d386991b6af3/dns.tries, 0x3032c733631327d69c18d386991b6af3/dns.resolve.sock, 0x3032c733631327d69c18d386991b6af3/dns.resolve.q, 0x3032c733631327d69c18d386991b6af3/dns.resolve.id, 0x3032c733631327d69c18d386991b6af3/dns.resolve.ns, 0x3032c733631327d69c18d386991b6af3/dns.resolve.at, 0x3032c733631327d69c18d386991b6af3/dns.resolve.n3, 0x3032c733631327d69c18d386991b6af3/dns.resolve.n2b, 0x3032c733631327d69c18d386991b6af3/dns.resolve.n2, 0x3032c733631327d69c18d386991b6af3/dns.resolve.n1b, 0x3032c733631327d69c18d386991b6af3/dns.resolve.list, 0x3032c733631327d69c18d386991b6af3/dns.resolve.read, 0x3032c733631327d69c18d386991b6af3/dns.resolve.conf, 0x3032c733631327d69c18d386991b6af3/dns.resolve.dns, 0x3032c733631327d69c18d386991b6af3/dns.lookup.all, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.os, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.dns, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.from, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.text, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.opened, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.hosts, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.pick, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.ask, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.pure.pick, 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.pure, 0x3032c733631327d69c18d386991b6af3/dns.resolve.pure, 0x3032c733631327d69c18d386991b6af3/dns.resolve, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.digest.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha256.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha512.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha1.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.hmac.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.hkdf.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.pbkdf2.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.random.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.eq.ct.words, 0x4a157af9bb54efff1723341b7254fc4a/scram.first, 0x4a157af9bb54efff1723341b7254fc4a/scram.hmac.of, 0x4a157af9bb54efff1723341b7254fc4a/scram.hmac, 0x4a157af9bb54efff1723341b7254fc4a/scram.sha.of, 0x4a157af9bb54efff1723341b7254fc4a/scram.sha, 0x4a157af9bb54efff1723341b7254fc4a/scram.pbkdf2.of, 0x4a157af9bb54efff1723341b7254fc4a/scram.pbkdf2, 0x4a157af9bb54efff1723341b7254fc4a/scram.eq.of, 0x4a157af9bb54efff1723341b7254fc4a/scram.respond.of, 0x4a157af9bb54efff1723341b7254fc4a/scram.respond, 0x4a157af9bb54efff1723341b7254fc4a/scram.verify.of, 0x4a157af9bb54efff1723341b7254fc4a/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: 127 defs rely on unsafe or foreign code: - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.connect - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.recv - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.send - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.recv_from - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.send_to - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.connect - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.connect.cert - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.connect.alpn - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.send - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.recv - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.close - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.recv.words - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.send.words - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.recv.words - 0xa3dc0f6e3963608e4608a1017272cf4f/wire.tls.send.words - 0x096635686408886b7d907f16c4550317/wire.connect - 0x096635686408886b7d907f16c4550317/wire.recv - 0x096635686408886b7d907f16c4550317/wire.send - 0x096635686408886b7d907f16c4550317/wire.recv_from - 0x096635686408886b7d907f16c4550317/wire.send_to - 0x096635686408886b7d907f16c4550317/wire.tls.connect - 0x096635686408886b7d907f16c4550317/wire.tls.send - 0x096635686408886b7d907f16c4550317/wire.tls.recv - 0x096635686408886b7d907f16c4550317/wire.tls.close - 0x096635686408886b7d907f16c4550317/wire.recv.words - 0x096635686408886b7d907f16c4550317/wire.send.words - 0x096635686408886b7d907f16c4550317/wire.tls.recv.words - 0x096635686408886b7d907f16c4550317/wire.tls.send.words - 0x3032c733631327d69c18d386991b6af3/dns.try.sent - 0x3032c733631327d69c18d386991b6af3/dns.try.once - 0x3032c733631327d69c18d386991b6af3/dns.tries - 0x3032c733631327d69c18d386991b6af3/dns.resolve.sock - 0x3032c733631327d69c18d386991b6af3/dns.resolve.q - 0x3032c733631327d69c18d386991b6af3/dns.resolve.id - 0x3032c733631327d69c18d386991b6af3/dns.resolve.ns - 0x3032c733631327d69c18d386991b6af3/dns.resolve.at - 0x3032c733631327d69c18d386991b6af3/dns.resolve.n3 - 0x3032c733631327d69c18d386991b6af3/dns.resolve.n2b - 0x3032c733631327d69c18d386991b6af3/dns.resolve.n2 - 0x3032c733631327d69c18d386991b6af3/dns.resolve.n1b - 0x3032c733631327d69c18d386991b6af3/dns.resolve.list - 0x3032c733631327d69c18d386991b6af3/dns.resolve.read - 0x3032c733631327d69c18d386991b6af3/dns.resolve.conf - 0x3032c733631327d69c18d386991b6af3/dns.resolve.dns - 0x3032c733631327d69c18d386991b6af3/dns.lookup.all - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.os - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.dns - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.from - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.text - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.opened - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.hosts - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.pick - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.ask - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.pure.pick - 0x3032c733631327d69c18d386991b6af3/dns.resolve.all.pure - 0x3032c733631327d69c18d386991b6af3/dns.resolve.pure - 0x3032c733631327d69c18d386991b6af3/dns.resolve - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.digest.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha256.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha512.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha1.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.hmac.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.hkdf.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.pbkdf2.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.random.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.eq.ct.words - 0x4a157af9bb54efff1723341b7254fc4a/scram.first - 0x4a157af9bb54efff1723341b7254fc4a/scram.hmac.of - 0x4a157af9bb54efff1723341b7254fc4a/scram.hmac - 0x4a157af9bb54efff1723341b7254fc4a/scram.sha.of - 0x4a157af9bb54efff1723341b7254fc4a/scram.sha - 0x4a157af9bb54efff1723341b7254fc4a/scram.pbkdf2.of - 0x4a157af9bb54efff1723341b7254fc4a/scram.pbkdf2 - 0x4a157af9bb54efff1723341b7254fc4a/scram.eq.of - 0x4a157af9bb54efff1723341b7254fc4a/scram.respond.of - 0x4a157af9bb54efff1723341b7254fc4a/scram.respond - 0x4a157af9bb54efff1723341b7254fc4a/scram.verify.of - 0x4a157af9bb54efff1723341b7254fc4a/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 | 2.0 s |
| scram.bend | relies on unsafe/foreign | 21 defs rely on unsafe or foreign code defs: 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.digest.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha256.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha512.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha1.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.hmac.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.hkdf.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.pbkdf2.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.random.words, 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.eq.ct.words, first, hmac.of, hmac, sha.of, sha, pbkdf2.of, pbkdf2, eq.of, respond.of, respond, verify.of, verifyoutputSOME PROOFS FAIL Error: 21 defs rely on unsafe or foreign code: - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.digest.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha256.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha512.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.sha1.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.hmac.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.hkdf.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.pbkdf2.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.random.words - 0xfbc61a0d1aed5a9252de78ef4ae7a756/crypto.eq.ct.words - first - hmac.of - hmac - sha.of - sha - pbkdf2.of - pbkdf2 - eq.of - respond.of - respond - verify.of - verify | 1.0 s |