<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>FalkorDB-rs Dev Log</title>
      <link>https://falkordb.github.io/falkordb-rs</link>
      <description>Field notes from building the FalkorDB Rust client — type-safe graphs, async, and why we bet on Rust.</description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://falkordb.github.io/falkordb-rs/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Wed, 24 Jun 2026 00:00:00 +0000</lastBuildDate>
      <item>
          <title>Read your writes: opt-in replica routing via Sentinel</title>
          <pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate>
          <author>Barak</author>
          <link>https://falkordb.github.io/falkordb-rs/posts/08-replica-routing/</link>
          <guid>https://falkordb.github.io/falkordb-rs/posts/08-replica-routing/</guid>
          <description xml:base="https://falkordb.github.io/falkordb-rs/posts/08-replica-routing/">&lt;p&gt;We made it to the finale. This one is short, but it&#x27;s the post where a one-word default decision is
actually a &lt;em&gt;correctness&lt;&#x2F;em&gt; decision in disguise — and getting it wrong is the kind of bug that doesn&#x27;t
show up until production, under load, intermittently. My favorite kind. (It is not my favorite kind.)&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-setup&quot;&gt;The setup&lt;&#x2F;h2&gt;
&lt;p&gt;Behind Redis Sentinel, a FalkorDB deployment has a primary and one or more replicas. Reads &lt;em&gt;can&lt;&#x2F;em&gt; be
served from replicas to spread load. The catch: a replica applies a write only &lt;em&gt;after&lt;&#x2F;em&gt; the primary has
committed it. So a read from a replica can be &lt;strong&gt;slightly stale&lt;&#x2F;strong&gt; — it might not yet reflect a write you
just made.&lt;&#x2F;p&gt;

&lt;figure class=&quot;diagram&quot;&gt;
&lt;pre class=&quot;mermaid&quot;&gt;
sequenceDiagram
    autonumber
    participant App
    participant C as falkordb client
    participant Sentinel
    participant P as primary
    participant Rep as replica
    C-&amp;gt;&amp;gt;Sentinel: discover topology
    Sentinel--&amp;gt;&amp;gt;C: primary + replica addresses
    App-&amp;gt;&amp;gt;C: query(&amp;quot;CREATE ...&amp;quot;)  (write)
    C-&amp;gt;&amp;gt;P: always routed to the primary
    App-&amp;gt;&amp;gt;C: ro_query(...).prefer_replica()
    C-&amp;gt;&amp;gt;Rep: read served from a replica (may be slightly stale)
    App-&amp;gt;&amp;gt;C: ro_query(...).primary_only()
    C-&amp;gt;&amp;gt;P: read-your-writes — forced onto the primary
    Note over C,Rep: PreferReplica falls back to the primary&amp;lt;br&amp;#x2F;&amp;gt;when no replica is available
&lt;&#x2F;pre&gt;
&lt;figcaption&gt;Writes to the primary; reads where you ask — replica or primary.&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;h2 id=&quot;the-decision-stale-by-accident-is-not-allowed&quot;&gt;The decision: stale-by-accident is not allowed&lt;&#x2F;h2&gt;
&lt;p&gt;Here&#x27;s the part I want to defend, because it was a &lt;strong&gt;breaking change&lt;&#x2F;strong&gt; and I made people opt back in.&lt;&#x2F;p&gt;
&lt;p&gt;The client &lt;em&gt;used&lt;&#x2F;em&gt; to route read-only queries to replicas automatically when they were available. That&#x27;s
great for throughput and quietly terrible for correctness: the classic failure is &quot;create a thing, then
immediately read it back, and it&#x27;s not there&quot; — because the read went to a replica that hadn&#x27;t caught
up. That&#x27;s a heisenbug. It reproduces under load, on a good day, once.&lt;&#x2F;p&gt;
&lt;p&gt;So the default flipped: &lt;strong&gt;reads go to the primary&lt;&#x2F;strong&gt; unless you explicitly opt in. You don&#x27;t get
replication lag unless you ask for it. Throughput is a knob you turn on purpose, with your eyes open —
not a default that silently trades correctness for a benchmark number. Routing is now controllable at
two levels:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Per client&lt;&#x2F;strong&gt; — &lt;code&gt;with_read_preference(ReadPreference::PreferReplica)&lt;&#x2F;code&gt; makes every read prefer a
replica.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Per query&lt;&#x2F;strong&gt; — &lt;code&gt;ro_query(..).prefer_replica()&lt;&#x2F;code&gt; opts a single query in, and &lt;code&gt;.primary_only()&lt;&#x2F;code&gt; forces
a single query back onto the primary. That last one is the read-your-writes escape hatch: even on a
replica-preferring client, the one read that has to be fresh can demand the primary.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Here&#x27;s the real &lt;code&gt;examples&#x2F;readonly_replica.rs&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Demonstrates opt-in routing of read-only queries to replica nodes.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Routing reads to replicas is **opt-in**, because a FalkorDB replica applies writes only after&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! the primary has committed them — a read served from a replica can be slightly **stale**. By&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! default every read goes to the primary, so you never observe replication lag unless you ask for&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! it. Opt in either:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! * **per client** — `FalkorClientBuilder::with_read_preference(ReadPreference::PreferReplica)`&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!   makes every read-only query prefer a replica, or&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! * **per query** — `ro_query(..).prefer_replica()` opts a single query in (and&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!   `.primary_only()` forces a single query back onto the primary for read-your-writes paths).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! `PreferReplica` transparently falls back to the primary when no replica is available (for&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! example a single-node deployment), so the same code runs everywhere.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Set `FALKORDB_CONNECTION` to a Sentinel endpoint (for example&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! `falkor:&#x2F;&#x2F;127.0.0.1:26379`) to see reads routed to replicas; otherwise it&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! defaults to a local single node.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; ReadPreference&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; connection_info&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; std&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;env&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;var&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;FALKORDB_CONNECTION&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;unwrap_or_else&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt;_&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;falkor:&#x2F;&#x2F;127.0.0.1:6379&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;to_string&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Opt this client into replica reads by default. Drop `with_read_preference` (or pass&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; `ReadPreference::Primary`) to keep every read on the primary.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;connection_info&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;as_str&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_read_preference&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;ReadPreference&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;PreferReplica&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; `replica_reads_available()` reports capability (a replica pool exists), while&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; `read_preference()` reports the client&amp;#39;s default policy.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;replica_reads_available&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Replica connections are available; read-only queries may be served from them.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;No readable replicas detected; read-only queries use the primary.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Default read preference: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;read_preference&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;readonly_example&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Writes always go to the primary.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;CREATE (:Greeting &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;text: &amp;#39;hello&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; This read-only query follows the client default (PreferReplica) — served from a replica when&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; one is available, otherwise transparently from the primary.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; greetings&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;ro_query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (g:Greeting) RETURN g.text&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; greetings&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;by_ref&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;replica-preferring read: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;row:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; A read-your-writes path can force the primary for a single query, ignoring the client default.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; fresh&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;ro_query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (g:Greeting) RETURN g.text&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;primary_only&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; fresh&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;by_ref&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;primary (fresh) read: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;row:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;readonly_replica.rs&quot;&gt;&lt;code&gt;examples&#x2F;readonly_replica.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-ergonomic-details-that-make-it-safe-to-live-with&quot;&gt;The ergonomic details that make it safe to live with&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;It degrades gracefully.&lt;&#x2F;strong&gt; &lt;code&gt;PreferReplica&lt;&#x2F;code&gt; transparently falls back to the primary when no replica
exists — a single-node dev box, say — so the &lt;em&gt;same code&lt;&#x2F;em&gt; runs in every environment. You don&#x27;t write
one path for laptops and another for production.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Capability and policy are separate questions.&lt;&#x2F;strong&gt; &lt;code&gt;replica_reads_available()&lt;&#x2F;code&gt; tells you whether a
replica pool even exists; &lt;code&gt;read_preference()&lt;&#x2F;code&gt; tells you the client&#x27;s default policy. Conflating
&quot;can I?&quot; with &quot;will I?&quot; is how you get confusing behavior, so they&#x27;re two honest accessors.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Asking for a replica on a write fails loudly.&lt;&#x2F;strong&gt; Request a replica for a writable query and you get
a real error, not a quietly-wrong route to a node that can&#x27;t serve it.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;that-s-a-wrap&quot;&gt;That&#x27;s a wrap&lt;&#x2F;h2&gt;
&lt;p&gt;Eight posts, one theme: &lt;strong&gt;push correctness into the type system and the API defaults, so the easy path
is the safe path.&lt;&#x2F;strong&gt; Typed parameters, honest rows, streaming async, an embedded server, temporal math,
retries that can&#x27;t double-write, privacy-safe telemetry, and now reads that don&#x27;t accidentally read the
past. That&#x27;s a month.&lt;&#x2F;p&gt;
&lt;p&gt;Every snippet you read across this series is a real file the CI compiled, and the benchmark in
&lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;04-async-streaming-and-multiplexing&#x2F;&quot;&gt;Part 4&lt;&#x2F;a&gt; is a real harness you can re-run. That wasn&#x27;t
an accident — it&#x27;s the same principle as the code: make the trustworthy thing the default thing.&lt;&#x2F;p&gt;
&lt;p&gt;Thanks for reading the dev log. The code&#x27;s on &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&quot;&gt;GitHub&lt;&#x2F;a&gt;;
come argue with me about any of it.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Production-grade: retries, tracing spans, metrics, and error hints</title>
          <pubDate>Sun, 21 Jun 2026 00:00:00 +0000</pubDate>
          <author>Barak</author>
          <link>https://falkordb.github.io/falkordb-rs/posts/07-resilience-and-observability/</link>
          <guid>https://falkordb.github.io/falkordb-rs/posts/07-resilience-and-observability/</guid>
          <description xml:base="https://falkordb.github.io/falkordb-rs/posts/07-resilience-and-observability/">&lt;p&gt;A client library spends most of its life in production, where the network is hostile and the only
thing you have at 3am is whatever the library decided to tell you. This batch of work was all about
that life: surviving transient failures, explaining what&#x27;s happening, and — when something does break —
pointing at the fix.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;retries-that-can-t-duplicate-a-write&quot;&gt;Retries that can&#x27;t duplicate a write&lt;&#x2F;h2&gt;
&lt;p&gt;Retries are a loaded gun. Re-issue a read and worst case you did some redundant work; re-issue a write
and you might have just charged a customer twice. So the retry policy here has one inviolable rule:
&lt;strong&gt;writes are never retried.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;

&lt;figure class=&quot;diagram&quot;&gt;
&lt;pre class=&quot;mermaid&quot;&gt;
sequenceDiagram
    autonumber
    participant App
    participant C as falkordb client
    participant DB as FalkorDB
    App-&amp;gt;&amp;gt;C: ro_query(...).execute()
    C-&amp;gt;&amp;gt;DB: attempt 1
    DB--xC: ConnectionDown (transient)
    Note over C: read-only + transient? eligible.&amp;lt;br&amp;#x2F;&amp;gt;backoff: 50ms, 100ms, 200ms ... capped at 1s
    C-&amp;gt;&amp;gt;C: sleep(backoff), re-borrow a healed connection
    C-&amp;gt;&amp;gt;DB: attempt 2
    DB--&amp;gt;&amp;gt;C: result set
    C--&amp;gt;&amp;gt;App: Ok(rows)
    Note over App,DB: a write (query()) in the same spot is NEVER retried —&amp;lt;br&amp;#x2F;&amp;gt;it fails fast so it can&amp;#x27;t be applied twice
&lt;&#x2F;pre&gt;
&lt;figcaption&gt;Read-only + transient → retried with backoff. A write fails fast.&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;It&#x27;s &lt;strong&gt;off by default&lt;&#x2F;strong&gt; — without a policy, every operation runs exactly once, same as before. When
you do opt in, only read-only &#x2F; idempotent operations that fail with a &lt;em&gt;transient connection&lt;&#x2F;em&gt; error
get retried, with bounded exponential backoff. Here&#x27;s the real &lt;code&gt;examples&#x2F;retry.rs&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Demonstrates the opt-in retry policy that re-issues eligible operations on transient&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! connection failures.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! A [`RetryPolicy`] is **disabled by default**, so a client built without one attempts every&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! operation exactly once (the previous behavior). When a policy is configured, read-only &#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! idempotent operations that fail with a transient connection error are automatically retried&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! with bounded backoff. **Writes are never retried**, so enabling a policy can never duplicate a&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! write.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Set `FALKORDB_CONNECTION` to point at another server (for example `falkor:&#x2F;&#x2F;127.0.0.1:6379`);&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! it defaults to a local single node.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Backoff&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; RetryPolicy&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; std&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;time&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Duration&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; connection_info&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; std&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;env&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;var&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;FALKORDB_CONNECTION&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;unwrap_or_else&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt;_&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;falkor:&#x2F;&#x2F;127.0.0.1:6379&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;to_string&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Retry read-only operations on transient connection failures: up to 4 attempts total&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; (1 initial try + 3 retries), with exponential backoff starting at 50ms and capped at 1s.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; policy&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; RetryPolicy&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;read_only&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;max_attempts&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;4&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;backoff&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Backoff&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;exponential&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Duration&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;from_millis&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;50&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;max_delay&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Duration&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;from_secs&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;connection_info&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;as_str&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_retry_policy&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;policy&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;retry_example&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Writes are NEVER auto-retried, even with a policy enabled, so a write can never be applied&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; twice. Classification is by the API you call: `query()` is always treated as a write.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;CREATE (:Greeting &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;text: &amp;#39;hello&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Read-only queries ARE eligible for retry. If the connection drops transiently here, the&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; client re-borrows a healed connection and re-issues the query (up to `max_attempts`), instead&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; of surfacing the error on the first blip. Use `ro_query()` (not `query()`) for retryable reads.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; greetings&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;ro_query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (g:Greeting) RETURN g.text&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; greetings&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;by_ref&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;read-only result: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;row:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;retry.rs&quot;&gt;&lt;code&gt;examples&#x2F;retry.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;p&gt;The classification is by the &lt;strong&gt;API you call&lt;&#x2F;strong&gt;, which is what makes it safe: &lt;code&gt;query()&lt;&#x2F;code&gt; is always
treated as a write and never retried; &lt;code&gt;ro_query()&lt;&#x2F;code&gt; is eligible. There&#x27;s no heuristic sniffing your
Cypher to guess intent — you told the client what this is by which method you called, and it believes
you. Enabling a policy can therefore never turn one write into two. That property mattered more to me
than any amount of cleverness.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;spans-that-tell-you-something-without-leaking-everything&quot;&gt;Spans that tell you something, without leaking everything&lt;&#x2F;h2&gt;
&lt;p&gt;With the &lt;code&gt;tracing&lt;&#x2F;code&gt; feature, every query- and procedure-execution span carries structured,
low-cardinality fields you can actually slice on — the graph (&lt;code&gt;db.namespace&lt;&#x2F;code&gt;), the command
(&lt;code&gt;db.operation.name&lt;&#x2F;code&gt;), whether it was read-only, the connection strategy, and the server-reported
execution time and returned row count. The naming is OpenTelemetry-aligned on purpose, so this drops
into your existing dashboards instead of inventing private conventions.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Demonstrates the `tracing` span enrichment (run with `--features tracing`).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! With the `tracing` feature enabled, the query- and procedure-execution spans carry structured,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! low-cardinality fields you can slice on — the graph (`db.namespace`), the command&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! (`db.operation.name`), whether it is read-only, the connection strategy, and a privacy-safe&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! `db.query.fingerprint`. The raw query text and parameter values are never recorded by default.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! This installs a simple `tracing-subscriber` that prints each span (and its fields) as it closes,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! so you can see the enriched execution spans for the write and the read below. Run with:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! `cargo run --example observability --features tracing`.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; tracing_subscriber&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;fmt&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;format&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FmtSpan&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Print each span and its recorded fields when it closes. The execution spans are at TRACE&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; level, so enable TRACE to see them (a real app would scope this to the `falkordb` target).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    tracing_subscriber&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;fmt&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_max_level&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;tracing&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Level&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;TRACE&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_span_events&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FmtSpan&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;CLOSE&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_target&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;true&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;init&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; connection_info&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; std&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;env&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;var&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;FALKORDB_CONNECTION&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;unwrap_or_else&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt;_&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;falkor:&#x2F;&#x2F;127.0.0.1:6379&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;to_string&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; `with_query_logging(true)` would additionally record the raw Cypher as `db.query.text`;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; it is off by default for privacy, so only the redacted fingerprint is recorded.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;connection_info&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;as_str&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;observability_example&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; A write: its span carries `db.operation.name = &amp;quot;GRAPH.QUERY&amp;quot;`, `db.falkordb.read_only = false`.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;CREATE (:Movie &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title: &amp;#39;The Matrix&amp;#39;, year: 1999&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; A read: its span carries `db.operation.name = &amp;quot;GRAPH.RO_QUERY&amp;quot;`, `read_only = true`, and a&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; `db.query.fingerprint` that is independent of the inlined `&amp;#39;The Matrix&amp;#39;` literal.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; titles&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;ro_query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) WHERE m.title = &amp;#39;The Matrix&amp;#39; RETURN m.year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; titles&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;by_ref&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;read-only result: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;row:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;observability.rs&quot;&gt;&lt;code&gt;examples&#x2F;observability.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s the design decision I&#x27;ll defend hardest: &lt;strong&gt;the raw query text and parameter values are not
recorded by default.&lt;&#x2F;strong&gt; Instead the span carries a &lt;code&gt;db.query.fingerprint&lt;&#x2F;code&gt; — a redacted identity for the
query &lt;em&gt;shape&lt;&#x2F;em&gt; that&#x27;s independent of the inlined literals. So &lt;code&gt;WHERE m.title = &#x27;The Matrix&#x27;&lt;&#x2F;code&gt; and
&lt;code&gt;WHERE m.title = &#x27;Heat&#x27;&lt;&#x2F;code&gt; share a fingerprint, and you can aggregate &quot;this query shape is slow&quot; without
spraying user data — or secrets — across your tracing backend. You can opt into full query logging with
&lt;code&gt;with_query_logging(true)&lt;&#x2F;code&gt; when you&#x27;re debugging locally, but you have to &lt;em&gt;ask&lt;&#x2F;em&gt;. Observability should
never be the reason you failed an audit.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;metrics-and-actionable-errors&quot;&gt;Metrics and actionable errors&lt;&#x2F;h2&gt;
&lt;p&gt;Two more pieces round it out:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A &lt;code&gt;metrics&lt;&#x2F;code&gt; feature&lt;&#x2F;strong&gt; emits &lt;strong&gt;bounded&lt;&#x2F;strong&gt; counters and histograms — executions, retries, in-flight
requests, pool-wait time. &quot;Bounded&quot; is the key word: the cardinality is fixed, so your metrics bill
doesn&#x27;t explode because someone parameterized a label with a user ID. Plays directly into the
&lt;code&gt;metrics&lt;&#x2F;code&gt; ecosystem.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;FalkorDBError::mitigation_hint()&lt;&#x2F;code&gt;&lt;&#x2F;strong&gt; — because an error that only tells you &lt;em&gt;what&lt;&#x2F;em&gt; went wrong is
half an error. The hint tells you what to &lt;em&gt;do&lt;&#x2F;em&gt; about it. It&#x27;s the difference between &lt;code&gt;ConnectionDown&lt;&#x2F;code&gt;
and &quot;&lt;code&gt;ConnectionDown&lt;&#x2F;code&gt; — the server may be restarting or unreachable; check connectivity and consider a
retry policy.&quot; Future-me, staring at a log line, is the customer for that sentence.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;None of this is glamorous. All of it is the difference between a library you &lt;em&gt;use&lt;&#x2F;em&gt; and a library you
&lt;em&gt;trust&lt;&#x2F;em&gt;. The finale, &lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;08-replica-routing&#x2F;&quot;&gt;Part 8&lt;&#x2F;a&gt;, is about trust of a subtler kind:
reading from replicas without accidentally reading the past.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Typed mapping with serde, and temporal values that do real math</title>
          <pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate>
          <author>Barak</author>
          <link>https://falkordb.github.io/falkordb-rs/posts/06-serde-and-temporal/</link>
          <guid>https://falkordb.github.io/falkordb-rs/posts/06-serde-and-temporal/</guid>
          <description xml:base="https://falkordb.github.io/falkordb-rs/posts/06-serde-and-temporal/">&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;03-header-aware-rows&#x2F;&quot;&gt;Part 3&lt;&#x2F;a&gt; gave us honest rows you read column-by-column. This post is
about two ways to stop reading column-by-column: map a whole row into your own type with &lt;code&gt;serde&lt;&#x2F;code&gt;, and
get temporal values back as real types instead of opaque scalars.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;rows-into-structs-with-serde&quot;&gt;Rows into structs, with &lt;code&gt;serde&lt;&#x2F;code&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Per-column &lt;code&gt;try_get&lt;&#x2F;code&gt; is great until you&#x27;re pulling ten fields off a node, at which point it&#x27;s ten
lines of boilerplate that all say the same thing. With the &lt;code&gt;serde&lt;&#x2F;code&gt; feature you derive &lt;code&gt;Deserialize&lt;&#x2F;code&gt;
on your struct and let the row map itself:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Typed result mapping with `serde`.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Run with: `cargo run --example typed_mapping --features serde`&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Requires a running FalkorDB instance (defaults to `127.0.0.1:6379`).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorConnectionInfo&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; serde&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Deserialize&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;derive&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Debug&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Deserialize&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;struct&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Movie&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; String&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; i64&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    #&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;serde&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;default&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    rating&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Option&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;f64&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Result&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Box&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;dyn&lt;&#x2F;span&gt;&lt;span&gt; std&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;error&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Error&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; connection_info&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorConnectionInfo&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;falkor:&#x2F;&#x2F;127.0.0.1:6379&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;connection_info&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;typed_mapping_example&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Start from a clean slate so the example is idempotent across repeated runs.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; The graph may not exist yet, so ignore a &amp;quot;missing graph&amp;quot; error here.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;CREATE (:Movie &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title: &amp;#39;Heat&amp;#39;, year: 1995, rating: 8.3&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; ── Value-level mapping ──────────────────────────────────────────────────&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Without typed mapping you would hand-match every `FalkorValue` variant.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; With the `serde` feature, deserialize a single returned value into a struct:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) RETURN m&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;by_ref&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Some&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;node&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;into_iter&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;next&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;            let&lt;&#x2F;span&gt;&lt;span&gt; movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; node&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;deserialize_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;            println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;                &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;value:   &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;) rating=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;title&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;year&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;rating&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            )&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; ── Row-level mapping with `query_as` ────────────────────────────────────&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Map every row in one shot. A single-column `RETURN m` maps the node&amp;#39;s properties:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; movies&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Vec&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Movie&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) RETURN m&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query_as&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Movie&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;collect&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Result&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;_&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; &amp;amp;&lt;&#x2F;span&gt;&lt;span&gt;movies&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;row:     &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;title&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;year&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Multi-column rows map column aliases onto struct fields:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; summaries&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Vec&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Movie&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) RETURN m.title AS title, m.year AS year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query_as&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Movie&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;collect&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Result&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;_&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; &amp;amp;&lt;&#x2F;span&gt;&lt;span&gt;summaries&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;aliased: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;title&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; movie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;year&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Scalars work too — `RETURN count(m)` is a single-column row:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; counts&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Vec&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;i64&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) RETURN count(m)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query_as&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;i64&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;collect&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Result&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;_&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;count:   &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;counts:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;typed_mapping.rs&quot;&gt;&lt;code&gt;examples&#x2F;typed_mapping.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;p&gt;What I like here is that it works at three levels without three different APIs:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Value-level:&lt;&#x2F;strong&gt; &lt;code&gt;node.deserialize_into::&amp;lt;Movie&amp;gt;()&lt;&#x2F;code&gt; turns a single returned node into a struct.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Row-level with &lt;code&gt;query_as&lt;&#x2F;code&gt;:&lt;&#x2F;strong&gt; &lt;code&gt;RETURN m&lt;&#x2F;code&gt; maps the node&#x27;s properties onto your fields; a
multi-column &lt;code&gt;RETURN m.title AS title, m.year AS year&lt;&#x2F;code&gt; maps the &lt;strong&gt;aliases&lt;&#x2F;strong&gt; onto the same fields.
Your &lt;code&gt;RETURN&lt;&#x2F;code&gt; and your struct meet in the middle, by name.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Scalars:&lt;&#x2F;strong&gt; &lt;code&gt;RETURN count(m)&lt;&#x2F;code&gt; deserializes straight into &lt;code&gt;i64&lt;&#x2F;code&gt;. Even the degenerate case is
consistent.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;And because it&#x27;s &lt;code&gt;serde&lt;&#x2F;code&gt;, the usual tools just work — &lt;code&gt;#[serde(default)]&lt;&#x2F;code&gt; on &lt;code&gt;rating: Option&amp;lt;f64&amp;gt;&lt;&#x2F;code&gt;
means a missing property is &lt;code&gt;None&lt;&#x2F;code&gt; instead of an error. You already know this vocabulary; the client
just speaks it.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;temporal-values-that-aren-t-lying-integers&quot;&gt;Temporal values that aren&#x27;t lying integers&lt;&#x2F;h2&gt;
&lt;p&gt;Now the one that&#x27;s secretly hard. FalkorDB has real temporal types — &lt;code&gt;date&lt;&#x2F;code&gt;, &lt;code&gt;time&lt;&#x2F;code&gt;&#x2F;&lt;code&gt;localtime&lt;&#x2F;code&gt;,
&lt;code&gt;duration&lt;&#x2F;code&gt;, &lt;code&gt;datetime&lt;&#x2F;code&gt;. For a while the client surfaced some of these as &lt;code&gt;Unparseable&lt;&#x2F;code&gt;, which is a
polite way of saying &quot;here&#x27;s a blob, you figure it out.&quot; That&#x27;s a trap: the moment you turn a date
into a bare &lt;code&gt;i64&lt;&#x2F;code&gt; to do arithmetic, you&#x27;ve thrown away the type system&#x27;s ability to stop you from
adding a &lt;em&gt;duration&lt;&#x2F;em&gt; to a &lt;em&gt;count of bananas&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;So we decode them into proper &lt;code&gt;Date&lt;&#x2F;code&gt; &#x2F; &lt;code&gt;Time&lt;&#x2F;code&gt; &#x2F; &lt;code&gt;Duration&lt;&#x2F;code&gt; &#x2F; &lt;code&gt;DateTime&lt;&#x2F;code&gt; value types, each exposing its
scalar as a typed &lt;code&gt;Seconds&lt;&#x2F;code&gt; — not a raw integer — and &lt;code&gt;DateTime&lt;&#x2F;code&gt;&#x2F;&lt;code&gt;Duration&lt;&#x2F;code&gt; get a small, &lt;strong&gt;type-safe
algebra&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Decoding FalkorDB temporal values and using the type-safe temporal algebra.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Run with: `cargo run --example temporal` (needs a FalkorDB server on 127.0.0.1:6379).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Date&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; DateTime&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Duration&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Time&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;falkor:&#x2F;&#x2F;127.0.0.1:6379&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;temporal_example&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; FalkorDB returns `date` &#x2F; `time` &#x2F; `duration` as typed, seconds-based scalars. The client&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; decodes them into the `Date` &#x2F; `Time` &#x2F; `Duration` value types rather than leaving them&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; `Unparseable`, so you can read them with strict typed access.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;RETURN date(&amp;#39;1947-11-29&amp;#39;) AS d, localtime() AS t, duration(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;days: 3&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;) AS dur&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;next&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;expect&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;expected a row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; d&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Date&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;d&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; t&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Time&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;t&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; dur&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Duration&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;dur&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Each value exposes its scalar as a typed `Seconds` (not a bare `i64`) — call `.get()` for the&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; underlying integer. This keeps a temporal scalar from being silently mixed with a plain int.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;date is &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; seconds since the Unix epoch&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; d&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;seconds&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;localtime is &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; seconds&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; t&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;seconds&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;duration is &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; seconds&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; dur&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;seconds&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;        &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;duration as std::time::Duration: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        dur&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;as_std_duration&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    )&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; `DateTime` and `Duration` support a small, type-safe algebra. Subtracting two instants yields&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; a `Duration`; shifting an instant by a `Duration` yields another `DateTime`.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; instant&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; DateTime&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;d&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;seconds&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; earlier&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; DateTime&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;d&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;seconds&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 60&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Duration&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; instant&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span&gt; earlier&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    assert_eq!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;seconds&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 60&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;instant is &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; seconds after `earlier`&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;seconds&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Shifting forward by a duration and back again is a no-op.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    assert_eq!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;instant&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span&gt; dur&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span&gt; dur&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; instant&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Overflow-checked variants return `None` instead of panicking.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    assert!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;DateTime&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;i64&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;MAX&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;checked_add&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;dur&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;is_none&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Nonsensical combinations simply have no impl and fail to compile, e.g.:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;     let _ = instant + earlier; &#x2F;&#x2F; error: cannot add two instants&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;temporal.rs&quot;&gt;&lt;code&gt;examples&#x2F;temporal.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;p&gt;The algebra is the point, and it&#x27;s deliberately restrictive:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;DateTime − DateTime → Duration&lt;&#x2F;code&gt;.&lt;&#x2F;strong&gt; The difference between two instants is a span. ✓&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;DateTime ± Duration → DateTime&lt;&#x2F;code&gt;.&lt;&#x2F;strong&gt; Shifting an instant by a span gives another instant. ✓&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;DateTime + DateTime&lt;&#x2F;code&gt;?&lt;&#x2F;strong&gt; That has no meaning, so it has &lt;em&gt;no impl&lt;&#x2F;em&gt; and won&#x27;t compile. You can&#x27;t
add two Tuesdays together, and now the compiler agrees with you.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;There are &lt;code&gt;checked_*&lt;&#x2F;code&gt; variants that return &lt;code&gt;None&lt;&#x2F;code&gt; instead of panicking on overflow, because temporal
arithmetic at the extremes is exactly where the silent wraparound bugs hide. &lt;code&gt;DateTime::new(i64::MAX) .checked_add(dur)&lt;&#x2F;code&gt; is &lt;code&gt;None&lt;&#x2F;code&gt;, not a wrapped-around timestamp from the Bronze Age.&lt;&#x2F;p&gt;
&lt;p&gt;This is a tiny domain, but it&#x27;s a perfect showcase for the whole thesis of this series: encode the
rules of your domain into types, and a category of bugs simply stops being expressible. Next, we take
that same &quot;make failure honest&quot; energy to the network itself —
&lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;07-resilience-and-observability&#x2F;&quot;&gt;retries, tracing, and metrics&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Batteries included: an embedded FalkorDB you can cargo run</title>
          <pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate>
          <author>Barak</author>
          <link>https://falkordb.github.io/falkordb-rs/posts/05-embedded-server/</link>
          <guid>https://falkordb.github.io/falkordb-rs/posts/05-embedded-server/</guid>
          <description xml:base="https://falkordb.github.io/falkordb-rs/posts/05-embedded-server/">&lt;p&gt;Every &quot;getting started&quot; guide has the same speed bump on line one: &lt;em&gt;first, run a server&lt;&#x2F;em&gt;. It&#x27;s a
small ask, but it&#x27;s friction at the exact moment someone is deciding whether your library is worth
their afternoon. So we removed it. With the &lt;code&gt;embedded&lt;&#x2F;code&gt; feature, the client can start a real FalkorDB
for you, in-process, and shut it down when you&#x27;re done.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-embedded-actually-does&quot;&gt;What &quot;embedded&quot; actually does&lt;&#x2F;h2&gt;
&lt;p&gt;The embedded server spins up &lt;code&gt;redis-server&lt;&#x2F;code&gt; as a child process with the FalkorDB module loaded, waits
until it answers &lt;code&gt;PING&lt;&#x2F;code&gt;, hands you a connected client, and tears the whole thing down on drop. The
interesting part is where the module comes from.&lt;&#x2F;p&gt;

&lt;figure class=&quot;diagram&quot;&gt;
&lt;pre class=&quot;mermaid&quot;&gt;
sequenceDiagram
    autonumber
    participant App
    participant E as EmbeddedServer
    participant Cache as module cache &amp;#x2F; build-time bundle
    participant R as redis-server (child process)
    participant DB as FalkorDB module
    App-&amp;gt;&amp;gt;E: build() with FalkorConnectionInfo::Embedded
    E-&amp;gt;&amp;gt;R: check `redis-server --version` (must be &amp;gt;= 8.0)
    E-&amp;gt;&amp;gt;Cache: resolve falkordb.so (cached &amp;#x2F; downloaded &amp;#x2F; embedded bytes)
    Cache--&amp;gt;&amp;gt;E: module path
    E-&amp;gt;&amp;gt;R: spawn redis-server --loadmodule falkordb.so
    E-&amp;gt;&amp;gt;R: poll PING until ready
    R--&amp;gt;&amp;gt;E: PONG
    E--&amp;gt;&amp;gt;App: connected client
    Note over App,DB: on drop, the child server is shut down for you
&lt;&#x2F;pre&gt;
&lt;figcaption&gt;Resolve the module, spawn the server, wait for ready, hand back a client.&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;There are three ways the &lt;code&gt;falkordb.so&lt;&#x2F;code&gt; module gets resolved, in increasing order of &quot;I have no network
and I like it that way&quot;:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Auto-download (default).&lt;&#x2F;strong&gt; If the module isn&#x27;t already present, it&#x27;s fetched from the official
releases, &lt;strong&gt;verified against a pinned SHA-256 checksum&lt;&#x2F;strong&gt;, and cached locally. First run pays the
download; every run after is instant. The &lt;code&gt;redis-server&lt;&#x2F;code&gt; binary itself is &lt;em&gt;not&lt;&#x2F;em&gt; downloaded — it&#x27;s
found on your &lt;code&gt;PATH&lt;&#x2F;code&gt; — so this leans on a tool you already have rather than smuggling in a binary.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Already-installed &#x2F; offline.&lt;&#x2F;strong&gt; Point at an existing module, or disable downloading and let it
search common system locations. No network at all.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Build-time bundle.&lt;&#x2F;strong&gt; Enable the &lt;code&gt;embedded-bundle&lt;&#x2F;code&gt; feature instead, and a &lt;code&gt;build.rs&lt;&#x2F;code&gt; fetches the
module &lt;em&gt;for your build target at compile time&lt;&#x2F;em&gt; and bakes it into your binary with &lt;code&gt;include_bytes!&lt;&#x2F;code&gt;.
The running process then needs &lt;strong&gt;zero network&lt;&#x2F;strong&gt; — it extracts the embedded bytes and goes. This is
the one for air-gapped and network-isolated deployments, and it&#x27;s why the feature exists.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Here&#x27;s the real &lt;code&gt;examples&#x2F;embedded_usage.rs&lt;&#x2F;code&gt; — note that the &lt;em&gt;usage&lt;&#x2F;em&gt; is identical regardless of how
the module is sourced; only the &lt;code&gt;EmbeddedConfig&lt;&#x2F;code&gt; differs:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Example demonstrating the embedded FalkorDB server feature.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! This example shows how to use FalkorDB with an embedded Redis server&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! that has the FalkorDB module loaded. This is useful for:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! - Testing without external dependencies&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! - Embedded applications&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! - Quick prototyping&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! # Self-Contained Mode&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! The embedded server can auto-provision the FalkorDB **module** via the&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! `auto_download` option (enabled by default). When enabled, a missing&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! `falkordb.so` is downloaded from the official FalkorDB releases, verified&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! against a pinned SHA-256 checksum and cached locally, so the embedded server&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! &amp;quot;just works&amp;quot; without a pre-installed module.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! The `redis-server` binary is **not** downloaded — it is located on the host&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! via `PATH` or `redis_server_path`. Install it from your package manager&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! (e.g. `brew install redis`, `apt-get install redis-server`).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! # Using an already-installed FalkorDB&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! To run fully offline against binaries already on the machine, either set&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! `falkordb_module_path` explicitly or disable `auto_download` (common system&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! locations are still searched). See `already_installed_config()` below.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! # Build-time bundle (offline at runtime)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! For network-isolated deployments, enable the `embedded-bundle` feature instead&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! of `embedded`. A `build.rs` fetches the module for the build target at compile&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! time and embeds it in the binary, so the running process needs **no network**.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! The same `EmbeddedConfig` &#x2F; API shown here works unchanged; only the module&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! source differs. Run it with:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! ```bash&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! cargo run --example embedded_usage --features embedded-bundle&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! ```&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! # Platform-Specific Requirements&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! ## macOS&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! The FalkorDB module requires OpenMP (libomp) on macOS. If not already installed via&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Homebrew, install it with: `brew install libomp`&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! # License Note&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! The FalkorDB module binary (downloaded at runtime, or embedded at build time&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! with `embedded-bundle`) is licensed under the Server Side Public License&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! (SSPL) v1. See https:&#x2F;&#x2F;www.falkordb.com&#x2F; for licensing details.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! # Running this example&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! ```bash&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! cargo run --example embedded_usage --features embedded&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! ```&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;EmbeddedConfig&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorConnectionInfo&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Build a config that uses binaries already installed on the machine, without&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; any network access: redis-server is taken from `PATH` and the FalkorDB&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; module from the given path (or common system locations when left as `None`).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;allow&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;dead_code&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; already_installed_config&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; EmbeddedConfig&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    EmbeddedConfig&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;        &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Disable downloading: resolve only explicit&#x2F;system binaries.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        auto_download&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; false&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;        &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Optionally pin an installed module; `None` searches system locations.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        falkordb_module_path&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; None&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        ..&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Default&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;default&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Starting embedded FalkorDB example...&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Default config: download + cache the FalkorDB module if missing, and find&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; redis-server on PATH. Swap in `already_installed_config()` to run offline&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; against an existing install instead.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; embedded_config&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; EmbeddedConfig&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;default&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; You can also customize the configuration:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; let embedded_config = EmbeddedConfig {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;     redis_server_path: Some(PathBuf::from(&amp;quot;&#x2F;path&#x2F;to&#x2F;redis-server&amp;quot;)),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;     falkordb_module_path: Some(PathBuf::from(&amp;quot;&#x2F;path&#x2F;to&#x2F;falkordb.so&amp;quot;)),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;     db_dir: Some(PathBuf::from(&amp;quot;&#x2F;tmp&#x2F;my_falkordb&amp;quot;)),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;     db_filename: &amp;quot;mydb.rdb&amp;quot;.to_string(),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;     socket_path: Some(PathBuf::from(&amp;quot;&#x2F;tmp&#x2F;falkordb.sock&amp;quot;)),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;     start_timeout: Duration::from_secs(10),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;     auto_download: true,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;     falkordb_version: None, &#x2F;&#x2F; or Some(&amp;quot;v4.18.10&amp;quot;.to_string())&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;     cache_dir: None,        &#x2F;&#x2F; or Some(PathBuf::from(&amp;quot;&#x2F;tmp&#x2F;fk-cache&amp;quot;))&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; };&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Creating client with embedded FalkorDB server...&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Build a client with embedded FalkorDB&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FalkorConnectionInfo&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;Embedded&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;embedded_config&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Connected to embedded FalkorDB server!&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Now use the client normally&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;social&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Create some nodes&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Creating nodes...&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;CREATE (:Person &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;name: &amp;#39;Alice&amp;#39;, age: 30&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;CREATE (:Person &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;name: &amp;#39;Bob&amp;#39;, age: 25&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;CREATE (:Person &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;name: &amp;#39;Charlie&amp;#39;, age: 35&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Create relationships&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Creating relationships...&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;            &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (a:Person &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;name: &amp;#39;Alice&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;), (b:Person &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;name: &amp;#39;Bob&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;) CREATE (a)-[:KNOWS]-&amp;gt;(b)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        )&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;            &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (b:Person &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;name: &amp;#39;Bob&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;), (c:Person &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;name: &amp;#39;Charlie&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;) CREATE (b)-[:KNOWS]-&amp;gt;(c)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        )&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Query the graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;\&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;n&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Querying the graph:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (p:Person) RETURN p.name, p.age ORDER BY p.age&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Found &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; results:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data &lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;  {&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Query with relationships&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;\&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;n&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Querying relationships:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (a:Person)-[:KNOWS]-&amp;gt;(b:Person) RETURN a.name, b.name&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Found &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; relationships:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data &lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;  {&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Clean up&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;\&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;n&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Deleting graph...&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Example completed successfully!&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;The embedded server will be automatically shut down when the client is dropped.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;embedded_usage.rs&quot;&gt;&lt;code&gt;examples&#x2F;embedded_usage.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-detail-i-m-quietly-proud-of&quot;&gt;The detail I&#x27;m quietly proud of&lt;&#x2F;h2&gt;
&lt;p&gt;Two, actually.&lt;&#x2F;p&gt;
&lt;p&gt;First, the embedded server now &lt;strong&gt;pre-flights &lt;code&gt;redis-server --version&lt;&#x2F;code&gt;&lt;&#x2F;strong&gt; and fails early, with a clear
message, if it&#x27;s older than the 8.0 the module requires. The failure mode it replaces — a server that
starts and then mysteriously can&#x27;t load the module — is exactly the kind of thing that eats an hour of
someone&#x27;s day. Fail fast, fail legible.&lt;&#x2F;p&gt;
&lt;p&gt;Second, the build-time bundle is genuinely hermetic. The checksum verification on the download path
isn&#x27;t decoration: a graph module is native code you&#x27;re loading into your process, and &quot;download some
bytes and run them&quot; without verifying them is how you end up in an incident review. Pinned version,
pinned checksum, or embedded-at-build-time bytes. Pick your paranoia level.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-this-matters-more-for-a-graph-database&quot;&gt;Why this matters more for a graph database&lt;&#x2F;h2&gt;
&lt;p&gt;Graph code is fiddly to test. You want a real engine — Cypher semantics, real planning, real
results — not a mock that lies to you. Embedded mode means your integration tests boot an actual
FalkorDB per run with no external setup, and your CI doesn&#x27;t need a service container just to check
that a &lt;code&gt;MATCH&lt;&#x2F;code&gt; returns what you think. It collapses the distance between &quot;I have an idea&quot; and &quot;I ran
it against the real thing&quot; to a single &lt;code&gt;cargo run&lt;&#x2F;code&gt;. That distance is where adoption lives or dies.&lt;&#x2F;p&gt;
&lt;p&gt;Next: the values &lt;em&gt;inside&lt;&#x2F;em&gt; those nodes. &lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;06-serde-and-temporal&#x2F;&quot;&gt;Part 6&lt;&#x2F;a&gt; is about mapping
rows straight into your structs with &lt;code&gt;serde&lt;&#x2F;code&gt;, and decoding temporal values into types with actual
arithmetic.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Async all the way down: streaming results and connection multiplexing</title>
          <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
          <author>Barak</author>
          <link>https://falkordb.github.io/falkordb-rs/posts/04-async-streaming-and-multiplexing/</link>
          <guid>https://falkordb.github.io/falkordb-rs/posts/04-async-streaming-and-multiplexing/</guid>
          <description xml:base="https://falkordb.github.io/falkordb-rs/posts/04-async-streaming-and-multiplexing/">&lt;p&gt;This is the post I&#x27;d been looking forward to writing, because it&#x27;s where the Rust bet from
&lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;01-why-rust&#x2F;&quot;&gt;Part 1&lt;&#x2F;a&gt; really pays rent. Two things landed: result sets became &lt;strong&gt;async
streams&lt;&#x2F;strong&gt;, and the async client learned to &lt;strong&gt;multiplex&lt;&#x2F;strong&gt; many concurrent queries over a few shared
sockets. Then I benchmarked it, because claims without numbers are just vibes.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;results-are-streams&quot;&gt;Results are streams&lt;&#x2F;h2&gt;
&lt;p&gt;On the async client, a result set&#x27;s &lt;code&gt;data&lt;&#x2F;code&gt; is a &lt;code&gt;Stream&amp;lt;Item = FalkorResult&amp;lt;Row&amp;gt;&amp;gt;&lt;&#x2F;code&gt;. Same fallible,
header-aware row from &lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;03-header-aware-rows&#x2F;&quot;&gt;Part 3&lt;&#x2F;a&gt; — now it arrives lazily and composes
with the entire &lt;code&gt;futures&lt;&#x2F;code&gt; toolbox.&lt;&#x2F;p&gt;

&lt;figure class=&quot;diagram&quot;&gt;
&lt;pre class=&quot;mermaid&quot;&gt;
sequenceDiagram
    autonumber
    participant App
    participant S as Row stream
    participant DB as FalkorDB
    App-&amp;gt;&amp;gt;DB: GRAPH.RO_QUERY
    DB--&amp;gt;&amp;gt;S: header + result set
    loop for each row, lazily
        App-&amp;gt;&amp;gt;S: .next().await
        S--&amp;gt;&amp;gt;App: Ok(Row) — or Err you can `?`
    end
    Note over App,S: compose with the futures toolbox:&amp;lt;br&amp;#x2F;&amp;gt;map &amp;#x2F; try_collect &amp;#x2F; buffer_unordered(8)
&lt;&#x2F;pre&gt;
&lt;figcaption&gt;Rows arrive lazily; errors stay first-class.&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Here&#x27;s the real &lt;code&gt;examples&#x2F;async_stream.rs&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#&lt;&#x2F;span&gt;&lt;span&gt;!&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;recursion_limit &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;256&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Async streaming results with `futures::StreamExt` &#x2F; `TryStreamExt`.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Run with: `cargo run --example async_stream --features tokio`&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Requires a running FalkorDB instance (defaults to `127.0.0.1:6379`).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; futures&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;StreamExt&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; TryStreamExt&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;tokio&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;flavor &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;multi_thread&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;async&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new_async&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;falkor:&#x2F;&#x2F;127.0.0.1:6379&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;async_stream_example&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;UNWIND range(1, 5) AS i CREATE (:Movie &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;year: 1990 + i&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; ── 1. Collect a whole typed stream in one line ─────────────────────────&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; `data` is a `Stream`; map each row to a typed value and `try_collect`.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; years&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Vec&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;i64&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) RETURN m.year AS year ORDER BY year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt;row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;i64&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_collect&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;years: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;years:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; ── 2. Fan out a follow-up query per row, with bounded concurrency ──────&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; The graph handle is `Send + Clone` (it shares one schema cache), so each unit of work just&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; clones it. `buffer_unordered` keeps at most 8 follow-up queries in flight at once.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; next_years&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Vec&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;i64&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) RETURN m.year AS year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt;row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;            let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; g&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;clone&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;            async&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; move&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                let&lt;&#x2F;span&gt;&lt;span&gt; year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; i64&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; r&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; g&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                    .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;format!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;RETURN &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; + 1 AS next&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                    .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                    .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                r&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                    .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_next&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                    .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                    .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;expect&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;a row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                    .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;i64&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;next&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        }&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;buffer_unordered&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;8&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_collect&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    next_years&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;sort_unstable&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;next years: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;next_years:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;async_stream.rs&quot;&gt;&lt;code&gt;examples&#x2F;async_stream.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;p&gt;The bit that makes me happy is the second half: a stream of rows, each fanning out into a follow-up
query, with &lt;code&gt;buffer_unordered(8)&lt;&#x2F;code&gt; keeping at most eight in flight. That&#x27;s backpressure-aware
concurrency in about five lines, and it falls out of treating results as a &lt;code&gt;Stream&lt;&#x2F;code&gt; instead of
inventing a bespoke cursor API. Reuse beats reinvention.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;many-queries-few-sockets-multiplexing&quot;&gt;Many queries, few sockets: multiplexing&lt;&#x2F;h2&gt;
&lt;p&gt;The other half is &lt;em&gt;how&lt;&#x2F;em&gt; those concurrent queries hit the wire. The async client supports two
connection strategies:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pooled&lt;&#x2F;strong&gt; — a fixed set of connections; each query borrows one exclusively for its duration.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multiplexed&lt;&#x2F;strong&gt; — a few auto-reconnecting sockets, each carrying &lt;em&gt;several in-flight commands at
once&lt;&#x2F;em&gt;. Queries are pipelined and their replies correlated back to the right caller.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;figure class=&quot;diagram&quot;&gt;
&lt;pre class=&quot;mermaid&quot;&gt;
sequenceDiagram
    autonumber
    participant T1 as task #1
    participant T2 as task #2
    participant T3 as task #64
    participant M as multiplexer (4 sockets)
    participant DB as FalkorDB
    T1-&amp;gt;&amp;gt;M: ro_query(&amp;quot;RETURN 1&amp;quot;)
    T2-&amp;gt;&amp;gt;M: ro_query(&amp;quot;RETURN 1&amp;quot;)
    T3-&amp;gt;&amp;gt;M: ro_query(&amp;quot;RETURN 1&amp;quot;)
    Note over M,DB: requests are pipelined over the shared sockets,&amp;lt;br&amp;#x2F;&amp;gt;not blocked on an exclusive connection each
    M-&amp;gt;&amp;gt;DB: GRAPH.RO_QUERY (pipelined)
    DB--&amp;gt;&amp;gt;M: replies, correlated back to each task
    M--&amp;gt;&amp;gt;T1: typed Row
    M--&amp;gt;&amp;gt;T2: typed Row
    M--&amp;gt;&amp;gt;T3: typed Row
&lt;&#x2F;pre&gt;
&lt;figcaption&gt;Multiplexing: 64 tasks, 4 sockets, replies correlated back.&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;&lt;code&gt;examples&#x2F;multiplexed_async.rs&lt;&#x2F;code&gt; fires 64 independent queries across 4 shared sockets:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#&lt;&#x2F;span&gt;&lt;span&gt;!&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;recursion_limit &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;256&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Demonstrates the multiplexed async connection strategy: many concurrent queries&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! share a small number of auto-reconnecting sockets, each carrying several in-flight&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! commands at once.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Run a FalkorDB instance first (e.g. `docker run -p 6379:6379 falkordb&#x2F;falkordb`), then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! `cargo run --example multiplexed_async --features tokio`.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;ConnectionStrategy&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; futures&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;StreamExt&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; std&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;num&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;NonZeroU8&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; std&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;sync&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Arc&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; tokio&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;task&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;JoinSet&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Usage of the asynchronous client REQUIRES the multi-threaded rt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;tokio&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;flavor &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;multi_thread&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;async&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Explicitly select the multiplexed strategy with 4 shared sockets. This is also the&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; default for `new_async()` (with 8 sockets), so `with_connection_strategy` here is&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; purely to make the choice visible.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Arc&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;        FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new_async&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;            .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;falkor:&#x2F;&#x2F;127.0.0.1:6379&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;            .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_strategy&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;ConnectionStrategy&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Multiplexed&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                connections&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; NonZeroU8&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;4&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;unwrap&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            }&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;            .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;            .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    )&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;        &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;effective strategy: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; connections)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;connection_strategy&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;connection_pool_size&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    )&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Fire many independent queries concurrently. With multiplexing, these are pipelined&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; over the shared sockets rather than each waiting for an exclusive connection.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; join_set&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; JoinSet&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; i&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;..&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;64&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;clone&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        join_set&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;spawn&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;async&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; move&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;            let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;multiplexed_demo&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;            let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;ro_query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;RETURN 1&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;            let&lt;&#x2F;span&gt;&lt;span&gt; value&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; res&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                .&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;next&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;                .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;and_then&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt;row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;and_then&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt; r&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get_at&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;i64&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;            FalkorResult&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;i&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; value&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        }&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; completed&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    while&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Some&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;joined&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; join_set&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;join_next&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        let&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span&gt;_i&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; _value&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; joined&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;expect&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;task should not panic&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        completed&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; +=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 1&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;completed &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;completed&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; concurrent queries over 4 multiplexed sockets&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;multiplexed_demo&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;await&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;multiplexed_async.rs&quot;&gt;&lt;code&gt;examples&#x2F;multiplexed_async.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;now-the-numbers&quot;&gt;Now, the numbers&lt;&#x2F;h2&gt;
&lt;p&gt;Here&#x27;s where I have to be honest instead of triumphant. Multiplexing is not free, and it is not always
faster — it&#x27;s faster &lt;em&gt;under contention&lt;&#x2F;em&gt;. The benchmark is the real &lt;code&gt;benches&#x2F;async_strategies.rs&lt;&#x2F;code&gt;
harness; it runs the same batch of concurrent &lt;code&gt;RETURN 1&lt;&#x2F;code&gt; reads against both strategies at a fixed
8 connections, across rising concurrency. (&lt;code&gt;RETURN 1&lt;&#x2F;code&gt; is deliberate: it isolates the client&#x27;s
connection behavior from query-planning cost.)&lt;&#x2F;p&gt;
&lt;figure class=&quot;bench&quot;&gt;
&lt;div class=&quot;bench-title&quot;&gt;Async read throughput at 8 connections — pooled vs multiplexed&lt;&#x2F;div&gt;
&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Concurrent reads&lt;&#x2F;th&gt;&lt;th&gt;Pooled (mean)&lt;&#x2F;th&gt;&lt;th&gt;Multiplexed (mean)&lt;&#x2F;th&gt;&lt;th&gt;Speedup&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;315.3 µs&lt;&#x2F;td&gt;&lt;td&gt;384.3 µs&lt;&#x2F;td&gt;&lt;td&gt;0.82×&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;815.0 µs&lt;&#x2F;td&gt;&lt;td&gt;862.7 µs&lt;&#x2F;td&gt;&lt;td&gt;0.94×&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;64&lt;&#x2F;td&gt;&lt;td&gt;5.58 ms&lt;&#x2F;td&gt;&lt;td&gt;3.69 ms&lt;&#x2F;td&gt;&lt;td&gt;1.51×&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;256&lt;&#x2F;td&gt;&lt;td&gt;20.43 ms&lt;&#x2F;td&gt;&lt;td&gt;11.85 ms&lt;&#x2F;td&gt;&lt;td&gt;1.72×&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;
&lt;&#x2F;table&gt;
&lt;figcaption class=&quot;bench-meta&quot;&gt;
Measured 2026-06-24 · Darwin arm64, Apple M1 Pro · FalkorDB &lt;code&gt;falkordb&amp;#x2F;falkordb@sha256:e4b43a2c5231e3c96b8dccec3d6b0f212e057435f4dc0fd63d73b642a20f958d&lt;&#x2F;code&gt; · criterion 0.8 · commit &lt;code&gt;d47fc61&lt;&#x2F;code&gt;. Reproduce with &lt;code&gt;just bench&lt;&#x2F;code&gt;.
&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Read that table honestly:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;At concurrency 1, pooling wins.&lt;&#x2F;strong&gt; One query at a time has nothing to multiplex, and the
multiplexer&#x27;s bookkeeping is pure overhead. The speedup is &lt;em&gt;below&lt;&#x2F;em&gt; 1.0 — multiplexing is slightly
slower here, and pretending otherwise would be lying to you.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;As concurrency climbs, multiplexing pulls ahead.&lt;&#x2F;strong&gt; By 64 concurrent reads it&#x27;s ~1.5× faster, and
by 256 it&#x27;s ~1.7×, because the pooled strategy is serializing waves of queries through 8 exclusive
connections while the multiplexer keeps many commands in flight per socket.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;So the guidance writes itself: a request&#x2F;response app doing one query at a time? Pooled is simple and
great. A server fanning out hundreds of concurrent graph reads? Multiplex. The default for the async
client is multiplexed with 8 sockets, which is the right call for the server workloads people
actually point this at.&lt;&#x2F;p&gt;
&lt;p&gt;The harness, by the way, skips itself cleanly when no server is reachable, so it stays runnable in CI
without flaking — a small thing I care about a lot, and the subject of more than one bug fix.&lt;&#x2F;p&gt;
&lt;p&gt;You can reproduce the table with &lt;code&gt;just bench&lt;&#x2F;code&gt; against your own server; your numbers will differ, which
is exactly why they&#x27;re labeled with the machine and date. Next up, the feature that means you don&#x27;t
even need a server running to try any of this: the &lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;05-embedded-server&#x2F;&quot;&gt;embedded FalkorDB&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Rows that don&#x27;t lie: header-aware, fallible result iteration</title>
          <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
          <author>Barak</author>
          <link>https://falkordb.github.io/falkordb-rs/posts/03-header-aware-rows/</link>
          <guid>https://falkordb.github.io/falkordb-rs/posts/03-header-aware-rows/</guid>
          <description xml:base="https://falkordb.github.io/falkordb-rs/posts/03-header-aware-rows/">&lt;p&gt;In &lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;02-typed-params&#x2F;&quot;&gt;Part 2&lt;&#x2F;a&gt; we made the data going &lt;em&gt;in&lt;&#x2F;em&gt; honest. This post is about the
data coming &lt;em&gt;out&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The old result API had two original sins, and if you&#x27;ve used a database driver in a dynamically-typed
mood you&#x27;ll recognize both: you addressed columns by &lt;strong&gt;position&lt;&#x2F;strong&gt; (&lt;code&gt;row[0]&lt;&#x2F;code&gt;, &lt;code&gt;row[1]&lt;&#x2F;code&gt; — good luck when
someone reorders the &lt;code&gt;RETURN&lt;&#x2F;code&gt;), and a value that didn&#x27;t match your expectation tended to surface as a
panic somewhere deep in iteration. Both of those are the kind of bug that passes code review and then
pages you at 2am.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-new-shape&quot;&gt;The new shape&lt;&#x2F;h2&gt;
&lt;p&gt;Two changes, and they compose:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Result sets are header-aware.&lt;&#x2F;strong&gt; A row knows its column names, so you read by alias —
&lt;code&gt;row.try_get(&quot;year&quot;)&lt;&#x2F;code&gt; — not by a magic index.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Iteration is fallible.&lt;&#x2F;strong&gt; The result stream yields &lt;code&gt;FalkorResult&amp;lt;Row&amp;gt;&lt;&#x2F;code&gt;. A row that fails to parse
is a real &lt;code&gt;Err&lt;&#x2F;code&gt; you can &lt;code&gt;?&lt;&#x2F;code&gt;, not a landmine.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Here&#x27;s the real &lt;code&gt;examples&#x2F;rows.rs&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Header-aware result rows: reading columns by name or index, with strict typed access.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Run with: `cargo run --example rows`&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Requires a running FalkorDB instance (defaults to `127.0.0.1:6379`).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorConnectionInfo&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorValue&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Result&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Box&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;dyn&lt;&#x2F;span&gt;&lt;span&gt; std&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;error&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Error&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; connection_info&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorConnectionInfo&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;falkor:&#x2F;&#x2F;127.0.0.1:6379&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;connection_info&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;rows_example&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Start from a clean slate so the example is idempotent across runs.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;            &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;CREATE (:Movie &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title: &amp;#39;The Matrix&amp;#39;, year: 1999, rating: 8.7&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;                    (:Movie &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title: &amp;#39;Heat&amp;#39;, year: 1995, rating: 8.3&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        )&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; ── Read columns by alias, converted to the type you ask for ────────────&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;            &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;             RETURN m.title AS title, m.year AS year, m.rating AS rating&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;             ORDER BY m.year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        )&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; `data` yields `FalkorResult&amp;lt;Row&amp;gt;`, so a row that fails to parse is a real `Err` you can `?`.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;by_ref&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        let&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        let&lt;&#x2F;span&gt;&lt;span&gt; title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; String&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        let&lt;&#x2F;span&gt;&lt;span&gt; year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; i64&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        let&lt;&#x2F;span&gt;&lt;span&gt; rating&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; f64&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;rating&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;) — rated &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;rating&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; ── Read by index, and borrow the raw value without converting ──────────&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; counted&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) RETURN count(m)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Some&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;row&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; counted&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;next&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        let&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        let&lt;&#x2F;span&gt;&lt;span&gt; count&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; i64&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get_at&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;movies: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;count&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;        &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; `get_at` borrows the underlying `FalkorValue` without converting or cloning.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        assert_eq!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;get_at&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Some&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FalkorValue&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;I64&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;count&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; ── Collect a whole result set; `collect` short-circuits on the first error ──&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; titles&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Vec&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;String&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) RETURN m.title AS title ORDER BY m.title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt;row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;|&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;String&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;collect&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Result&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;_&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;titles: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;titles:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; ── Turn a row into a column -&amp;gt; value map ───────────────────────────────&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; as_map&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) RETURN m.title AS title, m.year AS year ORDER BY m.year LIMIT 1&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Some&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;row&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; as_map&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;next&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        let&lt;&#x2F;span&gt;&lt;span&gt; map&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;into_map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;oldest movie as a map: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;map:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;rows.rs&quot;&gt;&lt;code&gt;examples&#x2F;rows.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-falkorresult-row-is-the-important-part&quot;&gt;Why &lt;code&gt;FalkorResult&amp;lt;Row&amp;gt;&lt;&#x2F;code&gt; is the important part&lt;&#x2F;h2&gt;
&lt;p&gt;Look at the iterator item type. It&#x27;s not &lt;code&gt;Row&lt;&#x2F;code&gt;, it&#x27;s &lt;code&gt;FalkorResult&amp;lt;Row&amp;gt;&lt;&#x2F;code&gt;. That one decision ripples
outward in the nicest way:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;?&lt;&#x2F;code&gt; works mid-iteration.&lt;&#x2F;strong&gt; &lt;code&gt;let row = row?;&lt;&#x2F;code&gt; and the unhappy path is handled the same way you
handle every other error in Rust. No special &quot;did this row secretly fail?&quot; dance.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;collect&lt;&#x2F;code&gt; short-circuits.&lt;&#x2F;strong&gt; Collecting into a &lt;code&gt;Result&amp;lt;Vec&amp;lt;_&amp;gt;, _&amp;gt;&lt;&#x2F;code&gt; stops at the first bad row and
hands you the error. One malformed value doesn&#x27;t get silently dropped or turned into a default.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Typed access is explicit.&lt;&#x2F;strong&gt; &lt;code&gt;try_get::&amp;lt;i64&amp;gt;(&quot;year&quot;)&lt;&#x2F;code&gt; says exactly what you expect, and converts
in one step. If the column is actually a string, you get an &lt;code&gt;Err&lt;&#x2F;code&gt; describing the mismatch — at the
call site, where you can do something about it.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;And when you &lt;em&gt;don&#x27;t&lt;&#x2F;em&gt; want to convert, &lt;code&gt;get_at&lt;&#x2F;code&gt; borrows the raw &lt;code&gt;FalkorValue&lt;&#x2F;code&gt; without cloning, so the
escape hatch is there when you need to inspect the wire value directly. Ergonomics shouldn&#x27;t cost you
control.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-by-name-thing-is-not-a-small-thing&quot;&gt;The &quot;by name&quot; thing is not a small thing&lt;&#x2F;h2&gt;
&lt;p&gt;I want to dwell on reading columns by alias for a second, because it&#x27;s the feature that quietly
prevents the most bugs. Positional access couples your Rust code to the &lt;em&gt;order&lt;&#x2F;em&gt; of your &lt;code&gt;RETURN&lt;&#x2F;code&gt;
clause. The day someone adds a column, or reorders two for readability, every positional index
downstream is now silently pointing at the wrong data — and nothing fails, it just returns
nonsense. Reading &lt;code&gt;row.try_get(&quot;year&quot;)&lt;&#x2F;code&gt; is immune to that. The query can grow and shuffle; your code
keeps asking for &lt;code&gt;year&lt;&#x2F;code&gt; and keeps getting &lt;code&gt;year&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;There&#x27;s also a tidy &lt;code&gt;into_map()&lt;&#x2F;code&gt; when you genuinely want the whole row as a &lt;code&gt;column → value&lt;&#x2F;code&gt; map —
handy for logging or for shoving a row into something generic.&lt;&#x2F;p&gt;
&lt;p&gt;This is about as far as the &lt;em&gt;untyped&lt;&#x2F;em&gt; row API goes. The natural next question is &quot;can I skip the
per-column &lt;code&gt;try_get&lt;&#x2F;code&gt; and just deserialize a row into my own struct?&quot; Yes — that&#x27;s the &lt;code&gt;serde&lt;&#x2F;code&gt; story
in &lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;06-serde-and-temporal&#x2F;&quot;&gt;Part 6&lt;&#x2F;a&gt;. But first, the feature I had the most fun building:
making the whole thing &lt;strong&gt;async and streaming&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Stop hand-quoting Cypher: type-safe, injection-proof parameters</title>
          <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
          <author>Barak</author>
          <link>https://falkordb.github.io/falkordb-rs/posts/02-typed-params/</link>
          <guid>https://falkordb.github.io/falkordb-rs/posts/02-typed-params/</guid>
          <description xml:base="https://falkordb.github.io/falkordb-rs/posts/02-typed-params/">&lt;p&gt;Every database client eventually has the same coming-of-age moment: the day it stops letting you
build queries with string concatenation. Today&#x27;s the day for this one.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-bad-old-way&quot;&gt;The bad old way&lt;&#x2F;h2&gt;
&lt;p&gt;Here&#x27;s the shape of code I never want to write again — and rather than hand-type it (this blog has a
rule: no uncompiled Rust), I&#x27;ll point you at the &lt;strong&gt;commented-out &quot;before&quot; block right inside the real
example below&lt;&#x2F;strong&gt;. It builds a query with &lt;code&gt;format!&lt;&#x2F;code&gt;, quoting &lt;code&gt;&#x27;The Matrix&#x27;&lt;&#x2F;code&gt; by hand and pasting &lt;code&gt;year&lt;&#x2F;code&gt;
straight into the string.&lt;&#x2F;p&gt;
&lt;p&gt;Two problems, one fatal. The annoying one: I&#x27;m responsible for quoting and escaping every value, and
I &lt;em&gt;will&lt;&#x2F;em&gt; get it wrong the day a title contains an apostrophe. The fatal one: if that title ever comes
from a user, they can close my string and append their own Cypher. &lt;code&gt;&#x27;; MATCH (n) DETACH DELETE n &#x2F;&#x2F;&lt;&#x2F;code&gt;
and the graph is gone. This is injection, and &quot;remember to escape everything, forever&quot; is not a
security strategy.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-way-that-ships-now&quot;&gt;The way that ships now&lt;&#x2F;h2&gt;
&lt;p&gt;Parameters are &lt;strong&gt;bound&lt;&#x2F;strong&gt;, not interpolated. You hand the client real Rust values and it encodes them
into proper Cypher literals for you. The example below shows both the commented-out &quot;before&quot; and the
real &quot;after&quot;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Type-safe, injection-proof query parameters.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Run with: `cargo run --example typed_params`&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;! Requires a running FalkorDB instance (defaults to `127.0.0.1:6379`).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorConnectionInfo&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; std&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;collections&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;BTreeMap&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Result&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Box&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;dyn&lt;&#x2F;span&gt;&lt;span&gt; std&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;error&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Error&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; connection_info&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorConnectionInfo&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;falkor:&#x2F;&#x2F;127.0.0.1:6379&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;connection_info&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;typed_params_example&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Start from a clean slate so the example is idempotent across runs.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; ── Before: hand-quoting and escaping every value yourself ──────────────&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; let mut params = HashMap::new();&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; params.insert(&amp;quot;title&amp;quot;.to_string(), &amp;quot;&amp;#39;The Matrix&amp;#39;&amp;quot;.to_string()); &#x2F;&#x2F; manual quotes!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; params.insert(&amp;quot;year&amp;quot;.to_string(), 1999.to_string());&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; graph.query(&amp;quot;CREATE (:Movie {title: $title, year: $year})&amp;quot;).with_params(&amp;amp;params)...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; ── After: typed values, encoding handled for you ───────────────────────&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;CREATE (:Movie &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title: $title, year: $year, rating: $rating&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_param&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;The Matrix&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_param&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 1999&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_param&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;rating&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 8&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;7&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; A string that would be a Cypher-injection attempt is stored as an inert literal.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;CREATE (:Movie &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title: $title, year: $year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_param&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;#39;; MATCH (n) DETACH DELETE n &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_param&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 2003&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Collections work too: `WHERE x IN $list`.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; titles&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (m:Movie) WHERE m.year IN $years RETURN m.title AS title ORDER BY m.year&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_param&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;years&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;1999&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 2003&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; titles&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;by_ref&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;        &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Read the column by its alias and convert it in one step.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        let&lt;&#x2F;span&gt;&lt;span&gt; title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; String&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;matched: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Points can&amp;#39;t be bound directly — pass the components as a map and wrap with `point()`.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; coords&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; BTreeMap&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;from&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;latitude&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 32&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;07&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;longitude&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 34&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;79&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; located&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;RETURN point($p)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_param&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;p&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; coords&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Some&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;row&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; located&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;next&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;point: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; row&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;get_at&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;typed_params.rs&quot;&gt;&lt;code&gt;examples&#x2F;typed_params.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;p&gt;A few things I want to point at, because they&#x27;re the whole point:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;with_param&lt;&#x2F;code&gt; takes typed Rust values.&lt;&#x2F;strong&gt; &lt;code&gt;&quot;The Matrix&quot;&lt;&#x2F;code&gt; (a &lt;code&gt;&amp;amp;str&lt;&#x2F;code&gt;), &lt;code&gt;1999&lt;&#x2F;code&gt; (an &lt;code&gt;i64&lt;&#x2F;code&gt;), &lt;code&gt;8.7&lt;&#x2F;code&gt; (an
&lt;code&gt;f64&lt;&#x2F;code&gt;) — each is encoded as the correct Cypher literal. No quotes in your format string, because
there is no format string.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Injection becomes a non-event.&lt;&#x2F;strong&gt; The line that binds &lt;code&gt;&quot;&#x27;; MATCH (n) DETACH DELETE n &#x2F;&#x2F;&quot;&lt;&#x2F;code&gt; as a
title stores that whole thing as an inert string property. There is no parser context in which it
can &quot;break out,&quot; because it was never concatenated into the query text in the first place.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Collections just work.&lt;&#x2F;strong&gt; &lt;code&gt;WHERE m.year IN $years&lt;&#x2F;code&gt; with &lt;code&gt;[1999, 2003]&lt;&#x2F;code&gt; does what you&#x27;d hope — the
array is bound as a Cypher list. Great for the &lt;code&gt;IN&lt;&#x2F;code&gt;-list query you write fifteen times a week.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;The type system catches the edges.&lt;&#x2F;strong&gt; Some values (a spatial &lt;code&gt;point&lt;&#x2F;code&gt;) can&#x27;t be bound as a raw
literal, so the API makes you pass the components as a map and wrap them with &lt;code&gt;point()&lt;&#x2F;code&gt;. That&#x27;s the
compiler steering you toward the one correct encoding instead of letting you guess.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The ergonomic version and the safe version are the same version. That&#x27;s the bit I&#x27;m proud of: you
don&#x27;t &lt;em&gt;choose&lt;&#x2F;em&gt; safety here, you just write the obvious code and safety falls out.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-a-graph-client-especially-needs-this&quot;&gt;Why a graph client especially needs this&lt;&#x2F;h2&gt;
&lt;p&gt;Cypher is expressive, which is a polite way of saying there are a &lt;em&gt;lot&lt;&#x2F;em&gt; of places to inject. Node
labels, relationship types, property maps, list predicates, path patterns. Bound parameters keep your
&lt;strong&gt;data&lt;&#x2F;strong&gt; out of the &lt;strong&gt;query structure&lt;&#x2F;strong&gt;, permanently. Your query text becomes a fixed template the
server can even cache and re-plan efficiently, and your values ride alongside it where they can&#x27;t do
any harm.&lt;&#x2F;p&gt;
&lt;p&gt;It also makes the &lt;em&gt;next&lt;&#x2F;em&gt; feature possible. Once values are typed on the way in, it&#x27;s a short hop to
making results typed on the way out — which is exactly where
&lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;03-header-aware-rows&#x2F;&quot;&gt;Part 3&lt;&#x2F;a&gt; goes: rows that don&#x27;t lie about what they contain.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Why I keep betting on Rust for a graph database client</title>
          <pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate>
          <author>Barak</author>
          <link>https://falkordb.github.io/falkordb-rs/posts/01-why-rust/</link>
          <guid>https://falkordb.github.io/falkordb-rs/posts/01-why-rust/</guid>
          <description xml:base="https://falkordb.github.io/falkordb-rs/posts/01-why-rust/">&lt;p&gt;Welcome to the dev log for the &lt;strong&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.falkordb.com&#x2F;&quot;&gt;FalkorDB&lt;&#x2F;a&gt; Rust client&lt;&#x2F;strong&gt;. Over the
next few posts I&#x27;m going to walk through a month of changes that took this crate from &quot;it works&quot;
to &quot;I&#x27;d actually hand this to a stranger.&quot; Type-safe parameters, header-aware rows, async streaming,
an embedded server you can &lt;code&gt;cargo run&lt;&#x2F;code&gt;, temporal values, retries, metrics, replica routing — the
whole tour.&lt;&#x2F;p&gt;
&lt;p&gt;But first, the obvious question: why pour this much effort into a &lt;em&gt;client library&lt;&#x2F;em&gt;, in &lt;em&gt;Rust&lt;&#x2F;em&gt;, for a
graph database? Let me make the case.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-falkordb-is-trying-to-be&quot;&gt;What FalkorDB is trying to be&lt;&#x2F;h2&gt;
&lt;p&gt;FalkorDB is a fast, low-latency graph database. Under the hood it represents the graph as sparse
matrices and answers queries with linear algebra (GraphBLAS), which is a genuinely different bet
from the pointer-chasing most graph databases do. The result is a database that stays quick when
your graph gets big and your queries get hairy — exactly the workload that knowledge graphs and
GenAI retrieval throw at you.&lt;&#x2F;p&gt;
&lt;p&gt;A database is only as good as the distance between &lt;em&gt;your code&lt;&#x2F;em&gt; and &lt;em&gt;its speed&lt;&#x2F;em&gt;. You can have the
fastest engine on earth, and if the client makes you hand-concatenate query strings and pattern-match
untyped blobs, people will write slow, buggy code on top of it. The client &lt;strong&gt;is&lt;&#x2F;strong&gt; the product, as
far as most developers ever experience it. That&#x27;s the part I work on, and that&#x27;s why I care about it
this much.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-rust&quot;&gt;Why Rust&lt;&#x2F;h2&gt;
&lt;p&gt;I want a client that&#x27;s &lt;strong&gt;fast&lt;&#x2F;strong&gt;, &lt;strong&gt;correct&lt;&#x2F;strong&gt;, and &lt;strong&gt;honest about failure&lt;&#x2F;strong&gt; — and Rust lets me have
all three without picking two.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Correctness you can feel at compile time.&lt;&#x2F;strong&gt; Rust&#x27;s type system is the best code reviewer I&#x27;ve
ever had. A whole category of &quot;oops&quot; — SQL&#x2F;Cypher injection, mismatched result columns, forgetting
that the network can fail — can be turned from runtime surprises into compile errors. Most of this
series is really just me handing more of my mistakes to the compiler.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Performance without a runtime tax.&lt;&#x2F;strong&gt; Zero-cost abstractions mean the ergonomic API and the fast
API are the same API. A typed row doesn&#x27;t cost you a heap allocation it didn&#x27;t need.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;One library, two worlds.&lt;&#x2F;strong&gt; The same crate ships a &lt;strong&gt;blocking&lt;&#x2F;strong&gt; client and a &lt;strong&gt;&lt;code&gt;tokio&lt;&#x2F;code&gt; async&lt;&#x2F;strong&gt;
client with the same ergonomics. (More on how, and what it costs, in &lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;04-async-streaming-and-multiplexing&#x2F;&quot;&gt;Part 4&lt;&#x2F;a&gt;.)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;It embeds anywhere.&lt;&#x2F;strong&gt; Rust drops into CLIs, servers, and other languages&#x27; runtimes without
dragging a VM along. We even ship an &lt;em&gt;embedded FalkorDB server&lt;&#x2F;em&gt; — see
&lt;a href=&quot;https:&#x2F;&#x2F;falkordb.github.io&#x2F;falkordb-rs&#x2F;posts&#x2F;05-embedded-server&#x2F;&quot;&gt;Part 5&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Here&#x27;s the whole thing in miniature — connect, query, iterate. This is the real
&lt;code&gt;examples&#x2F;basic_usage.rs&lt;&#x2F;code&gt; from the repo:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#0E1116, #F0F3F6); background-color: light-dark(#FFFFFF, #0A0C10);&quot;&gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;&#x2F;*&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Copyright FalkorDB Ltd. 2023 - present&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; * Licensed under the MIT License.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;use&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; falkordb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;fn&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; -&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorResult&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; FalkorClientBuilder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;new&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;with_connection_info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;falkor:&#x2F;&#x2F;127.0.0.1:6379&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;try_into&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;        .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;build&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Dataset is available in the &amp;#39;resources&amp;#39; directory&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;select_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;imdb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; cloned_graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; client&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;copy_graph&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;imdb&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;imdb_clone&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (a:actor) return a&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; mut&lt;&#x2F;span&gt;&lt;span&gt; clone_graph_res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; cloned_graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (a:actor) return a&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; Parses them one by one, to avoid unneeded performance hits&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    assert_eq!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 1317&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    assert_eq!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;clone_graph_res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 1317&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; let&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Some&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;orig&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt; Some&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;cloned&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span&gt;res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;next&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; clone_graph_res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;next&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Original one: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;orig:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;, Cloned one: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;cloned:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        assert_eq!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;orig&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cloned&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; We have already parsed one result&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    assert_eq!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 1316&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    assert_eq!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;clone_graph_res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 1316&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt;    &#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#66707B, #BDC4CC);&quot;&gt; more iterator usage:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span&gt;orig&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cloned&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;zip&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;clone_graph_res&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        println!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;Original one: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;orig:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;, Cloned one: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;cloned:?&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;        assert_eq!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;orig&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cloned&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    cloned_graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;delete&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; res_again&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; graph&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;query&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;MATCH (a:actor) return a&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032563, #ADDCFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;execute&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;?&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; as_vec&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; res_again&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;collect&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;::&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;Vec&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;_&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;    assert_eq!&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;as_vec&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A0111F, #FF9492);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#622CBC, #DBB7FF);&quot;&gt;len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#023B95, #91CBFF);&quot;&gt; 1317&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#702C00, #FFB757);&quot;&gt;    Ok&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;p class=&quot;source-note&quot;&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&#x2F;blob&#x2F;main&#x2F;examples&#x2F;basic_usage.rs&quot;&gt;&lt;code&gt;examples&#x2F;basic_usage.rs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &amp;mdash; compiled in CI.&lt;&#x2F;p&gt;
&lt;p&gt;Notice what you &lt;em&gt;don&#x27;t&lt;&#x2F;em&gt; see: no string-escaping, no &lt;code&gt;unwrap()&lt;&#x2F;code&gt; confetti, no &quot;parse this &lt;code&gt;Vec&amp;lt;Vec&amp;lt;u8&amp;gt;&amp;gt;&lt;&#x2F;code&gt;
yourself.&quot; Reading a result is just iterating typed rows. We&#x27;ll earn each of those niceties in later
posts.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-promise-of-this-blog-the-code-can-t-lie&quot;&gt;The promise of this blog: the code can&#x27;t lie&lt;&#x2F;h2&gt;
&lt;p&gt;I have a personal grudge against tech blogs whose code doesn&#x27;t compile. You copy a snippet from a
post, paste it in, and discover the API moved on two releases ago and nobody told the prose.&lt;&#x2F;p&gt;
&lt;p&gt;So I built this blog to make that impossible. &lt;strong&gt;Every Rust sample you&#x27;ll see is a real file in the
repository&lt;&#x2F;strong&gt; — an &lt;code&gt;examples&#x2F;*.rs&lt;&#x2F;code&gt; program or a &lt;code&gt;benches&#x2F;*.rs&lt;&#x2F;code&gt; harness — that CI compiles on every
push. At build time the site copies those exact files in and renders them. There is no hand-typed
code on this blog. If a snippet is here, it built.&lt;&#x2F;p&gt;

&lt;figure class=&quot;diagram&quot;&gt;
&lt;pre class=&quot;mermaid&quot;&gt;
flowchart LR
    A[&amp;quot;examples&amp;#x2F;*.rs&amp;lt;br&amp;#x2F;&amp;gt;benches&amp;#x2F;*.rs&amp;quot;] --&amp;gt;|&amp;quot;just build-examples (CI)&amp;quot;| B[&amp;quot;compiled, green check&amp;quot;]
    A --&amp;gt;|&amp;quot;blog-sync: byte-for-byte copy&amp;quot;| C[&amp;quot;this blog post&amp;quot;]
    B -. guarantees .-&amp;gt; C
&lt;&#x2F;pre&gt;
&lt;figcaption&gt;The snippet you read is the file CI compiled.&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;The same goes for numbers. When I show you a benchmark, it&#x27;s a real &lt;code&gt;criterion&lt;&#x2F;code&gt; harness, and the
figures are a dated sample run you can reproduce with one command. No vibes-based performance claims.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s a small obsession, but it&#x27;s the one that makes the rest of this series trustworthy. Next time,
the first place I taught the compiler to catch my mistakes: &lt;strong&gt;query parameters&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is a developer dev log; opinions are mine and occasionally wrong in interesting ways. Corrections
and heckling welcome on &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FalkorDB&#x2F;falkordb-rs&quot;&gt;GitHub&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</description>
      </item>
    </channel>
</rss>
