mirror of
https://github.com/denoland/deno.git
synced 2025-01-03 04:48:52 -05:00
684377c92c
Precursor to #23236 This implements the SNI features, but uses private symbols to avoid exposing the functionality at this time. Note that to properly test this feature, we need to add a way for `connectTls` to specify a hostname. This is something that should be pushed into that API at a later time as well. ```ts Deno.test( { permissions: { net: true, read: true } }, async function listenResolver() { let sniRequests = []; const listener = Deno.listenTls({ hostname: "localhost", port: 0, [resolverSymbol]: (sni: string) => { sniRequests.push(sni); return { cert, key, }; }, }); { const conn = await Deno.connectTls({ hostname: "localhost", [serverNameSymbol]: "server-1", port: listener.addr.port, }); const [_handshake, serverConn] = await Promise.all([ conn.handshake(), listener.accept(), ]); conn.close(); serverConn.close(); } { const conn = await Deno.connectTls({ hostname: "localhost", [serverNameSymbol]: "server-2", port: listener.addr.port, }); const [_handshake, serverConn] = await Promise.all([ conn.handshake(), listener.accept(), ]); conn.close(); serverConn.close(); } assertEquals(sniRequests, ["server-1", "server-2"]); listener.close(); }, ); ``` --------- Signed-off-by: Matt Mastracci <matthew@mastracci.com> |
||
---|---|---|
.. | ||
01_db.ts | ||
Cargo.toml | ||
dynamic.rs | ||
interface.rs | ||
lib.rs | ||
README.md | ||
remote.rs | ||
sqlite.rs | ||
time.rs |
deno_kv
This crate provides a key/value store for Deno. For an overview of Deno KV, please read the manual.
Storage Backends
Deno KV has a pluggable storage interface that supports multiple backends:
- SQLite - backed by a local SQLite database. This backend is suitable for development and is the default when running locally. It is implemented in the denokv_sqlite crate.
- Remote - backed by a remote service that implements the KV Connect protocol, for example Deno Deploy.
Additional backends can be added by implementing the Database
trait.
KV Connect
The KV Connect protocol allows the Deno CLI to communicate with a remote KV
database. The
specification for the protocol,
and the
protobuf definitions
can be found in the denokv
repository, under the proto
directory.