<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>HyperCrux.com</title>
    <link>https://hypercrux.com/</link>
    <description>Recent content on HyperCrux.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 07 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://hypercrux.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A Law Firm&#39;s Clause Library That Stays in the Office: Similar Clauses, Precedents and Client Links</title>
      <link>https://hypercrux.com/a-law-firms-clause-library-that-stays-in-the-office-similar-clauses-precedents-and-client-links/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/a-law-firms-clause-library-that-stays-in-the-office-similar-clauses-precedents-and-client-links/</guid>
      <description>&lt;p&gt;Consider a commercial law firm of twenty lawyers. Over the years it has worked on thousands of contracts, and somewhere among them is the best indemnity clause it ever negotiated for a food distributor. A lawyer drafting a new one wants to find it, along with a few others like it under English law, and to know which of the firm&amp;rsquo;s templates each one started from.&lt;/p&gt;&#xA;&lt;p&gt;The obvious tool would be a search service with AI built in, and that&amp;rsquo;s where the firm stops. Client contracts are confidential, and the partners won&amp;rsquo;t send their text to a cloud service to be indexed, however good the terms look. Whatever they use has to keep everything, embeddings included, on the firm&amp;rsquo;s own machines.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A PhD Student&#39;s Literature Review in One File: Citation Links, Abstract Search and SQL Together</title>
      <link>https://hypercrux.com/a-phd-students-literature-review-in-one-file-citation-links-abstract-search-and-sql-together/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/a-phd-students-literature-review-in-one-file-citation-links-abstract-search-and-sql-together/</guid>
      <description>&lt;p&gt;Take a second-year PhD student in public health with 1,400 papers in Zotero, all about loneliness in older adults. Her supervisor points her to a 2024 review they both trust and asks for a reading list built around it. The list should hold the papers near that review in the citation graph from 2018 on, with the ones closest to her research question first.&lt;/p&gt;&#xA;&lt;p&gt;Each half of that request is easy on its own. Citation tools follow references, and search engines rank by meaning. What she doesn&amp;rsquo;t have is one place that does both over her own library, and lets her rephrase the question next week and run it again.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Small Bike Shop&#39;s Recommendations in One File: Similar Products, Parts That Fit and Stock Levels</title>
      <link>https://hypercrux.com/a-small-bike-shops-recommendations-in-one-file-similar-products-parts-that-fit-and-stock-levels/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/a-small-bike-shops-recommendations-in-one-file-similar-products-parts-that-fit-and-stock-levels/</guid>
      <description>&lt;p&gt;Picture a bike shop with one store and a web shop selling about 3,000 products, from helmets to brake pads. The owner wants the product pages to suggest things worth adding to the basket. The web platform came with a &amp;ldquo;customers also bought&amp;rdquo; box, and it keeps suggesting lights that are out of stock and mudguards that don&amp;rsquo;t fit the customer&amp;rsquo;s bike.&lt;/p&gt;&#xA;&lt;p&gt;Good suggestions mix two kinds of knowledge that usually live apart. Whether two products are alike is a question about meaning, which vectors are good at. Whether a part fits a bike is a plain fact from the supplier&amp;rsquo;s spreadsheet, and so is the stock count, except that it changes every time the till rings.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Support Bot That Never Quotes a Retired Article: Help Centre Search on HyperCrux</title>
      <link>https://hypercrux.com/a-support-bot-that-never-quotes-a-retired-article-help-centre-search-on-hypercrux/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/a-support-bot-that-never-quotes-a-retired-article-help-centre-search-on-hypercrux/</guid>
      <description>&lt;p&gt;Picture a small software company with about 400 help articles and a chat bot on its website that answers questions from them. The bot works the way most of them do. It turns the customer&amp;rsquo;s question into a vector with an embedding model and finds the articles closest to it. A language model then writes the answer from those.&lt;/p&gt;&#xA;&lt;p&gt;The weak spot is what happens when an article changes. Say the refund policy changes in March. Someone writes a new article and retires the old one in the help centre, but the vector database keeps its own copy of every article, and the job that should delete the old copy fails without telling anyone. Now the bot quotes a refund window that no longer exists, and nobody finds out until a customer forwards the chat to support. Plans have the same problem. The search only knows which articles are for the pro plan if someone copies that over too, and keeps copying it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>An AI Assistant&#39;s Memory That Forgets Properly: People, Facts and Embeddings in One Transaction</title>
      <link>https://hypercrux.com/an-ai-assistants-memory-that-forgets-properly-people-facts-and-embeddings-in-one-transaction/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/an-ai-assistants-memory-that-forgets-properly-people-facts-and-embeddings-in-one-transaction/</guid>
      <description>&lt;p&gt;Say you&amp;rsquo;re building an assistant for account managers. It listens to what they tell it and keeps the useful parts, like Dana preferring calls after ten or Acme renewing in March. Before it answers a message, it pulls up the memories that matter and puts them in front of the language model.&lt;/p&gt;&#xA;&lt;p&gt;Two kinds of lookup hide in that. One is about meaning: which memories are closest to what was just said. The other is about people: which memories are about Dana. Then comes the part most memory setups handle badly. When Dana asks to be forgotten, every memory about her has to go, vectors included, and a copy left behind in a search index means the job isn&amp;rsquo;t done.&lt;/p&gt;</description>
    </item>
    <item>
      <title>At 3 a.m., Find the Incident That Looks Like This One: On-Call Notes With Links and Similarity</title>
      <link>https://hypercrux.com/at-3-a.m.-find-the-incident-that-looks-like-this-one-on-call-notes-with-links-and-similarity/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/at-3-a.m.-find-the-incident-that-looks-like-this-one-on-call-notes-with-links-and-similarity/</guid>
      <description>&lt;p&gt;Think of a platform team of six that keeps an online shop&amp;rsquo;s checkout running. Every incident gets a short write-up afterwards, saying what broke and what fixed it. After a few years that&amp;rsquo;s a few hundred pages in the team wiki, full of hard-won knowledge that nobody can find at 3 a.m.&lt;/p&gt;&#xA;&lt;p&gt;The question at 3 a.m. is &amp;ldquo;has this happened before?&amp;rdquo; Wiki search matches words, and the words in an alert rarely match the words in a write-up. The alert says connection refused. The write-up from March says checkout errors after a database failover. They describe the same problem from opposite ends. And on a truly bad night the wiki may be down too, if it runs on the same infrastructure that&amp;rsquo;s failing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Finding the Shot You Half Remember: A Photographer&#39;s Archive Searched by Image Embeddings</title>
      <link>https://hypercrux.com/finding-the-shot-you-half-remember-a-photographers-archive-searched-by-image-embeddings/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/finding-the-shot-you-half-remember-a-photographers-archive-searched-by-image-embeddings/</guid>
      <description>&lt;p&gt;Imagine a commercial photographer with about 60,000 keepers from twelve years of shoots. A client calls. They want the shot of the red chairs on the stage from one of their events, or something like it, and wider if she has one. She can picture it. She can&amp;rsquo;t place which event it was, and her keywords from back then are patchy.&lt;/p&gt;&#xA;&lt;p&gt;Image embeddings are good at this kind of memory. A CLIP model such as ViT-B/32 turns each photo into 512 numbers, and photos that look alike end up close together. It can turn a sentence into numbers in the same space, so &amp;ldquo;red chairs on a stage&amp;rdquo; lands near photos of red chairs on a stage. The rest of what she knows, which client it was for and that she only wants her four- and five-star picks, are facts, and facts belong in fields and links.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How Long a New HyperCrux Engine in C Would Take: Four to Six Weeks, Phase by Phase</title>
      <link>https://hypercrux.com/how-long-a-new-hypercrux-engine-in-c-would-take-four-to-six-weeks-phase-by-phase/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/how-long-a-new-hypercrux-engine-in-c-would-take-four-to-six-weeks-phase-by-phase/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://github.com/hypercrux/hypercrux/blob/main/BETA.md&#34;&gt;Beta plan&lt;/a&gt; describes a new database engine for HyperCrux, written in C, with all four handles built in. A plan like that needs a time estimate before anyone decides whether to start it. Here it is: about 19 to 30 working days of development to reach the Beta gate, which comes to roughly four to six weeks of calendar time with a working session most days. A first working version with all four handles would come in about a week.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Matching Candidates to Jobs and Deleting Them Cleanly: A Small Recruiting Agency on HyperCrux</title>
      <link>https://hypercrux.com/matching-candidates-to-jobs-and-deleting-them-cleanly-a-small-recruiting-agency-on-hypercrux/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/matching-candidates-to-jobs-and-deleting-them-cleanly-a-small-recruiting-agency-on-hypercrux/</guid>
      <description>&lt;p&gt;Say a four-person agency places data engineers and analysts, and holds about 8,000 CVs. When a client sends a new job, the first move is a shortlist: the people whose experience is closest to the job description, among those who are available and haven&amp;rsquo;t already applied. Pitching someone for a job they applied to last week is a quick way to look careless in front of a client.&lt;/p&gt;&#xA;&lt;p&gt;The agency also holds personal data, and that comes with duties. Under data protection law a candidate can ask to be deleted, and the agency&amp;rsquo;s own policy says CVs go two years after the last contact. Either way the CV has to go along with everything made from it, the vector included, and every link that ties the person to jobs and clients.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Three Ways to Make HyperCrux Faster: A C Search Loop, AltSql DB Underneath or a New Engine in C</title>
      <link>https://hypercrux.com/three-ways-to-make-hypercrux-faster-a-c-search-loop-altsql-db-underneath-or-a-new-engine-in-c/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/three-ways-to-make-hypercrux-faster-a-c-search-loop-altsql-db-underneath-or-a-new-engine-in-c/</guid>
      <description>&lt;p&gt;HyperCrux 0.1 is a Go library and command on top of SQLite, and it&amp;rsquo;s quick at the sizes it was built for. In the recorded benchmarks on a two-core cloud machine, a get by key takes 18 microseconds and a walk one link out 43 microseconds. A search among 100,000 vectors of 384 values takes 0.41 seconds. The question that comes up next is how much faster it could get, and what each step would cost.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How HyperCrux Got Its Name: Hyperlinks, Hyperspace and the Crux</title>
      <link>https://hypercrux.com/how-hypercrux-got-its-name-hyperlinks-hyperspace-and-the-crux/</link>
      <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/how-hypercrux-got-its-name-hyperlinks-hyperspace-and-the-crux/</guid>
      <description>&lt;p&gt;HyperCrux is a database where every record has four handles. You can reach it by its key, by SQL, by following its links or by how close its vector is to a question. The name describes the spot where those four meet, and it borrows from two old words to do it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;crux&#34;&gt;Crux&lt;/h2&gt;&#xA;&lt;p&gt;Crux is Latin for a cross. The constellation of the Southern Cross is officially named Crux, and sailors used it to find south. English borrowed the word for the hardest part of a problem, the point everything turns on: the crux of the matter.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How HyperCrux Was Tested: 200 Killed Writers and Not One Mismatched Record</title>
      <link>https://hypercrux.com/how-hypercrux-was-tested-200-killed-writers-and-not-one-mismatched-record/</link>
      <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/how-hypercrux-was-tested-200-killed-writers-and-not-one-mismatched-record/</guid>
      <description>&lt;p&gt;HyperCrux makes one promise above the others. A record can be reached four ways, by key, by SQL, by its links and by its vector, and the four never disagree. A deleted record doesn&amp;rsquo;t linger in search results. A link never points at a record that isn&amp;rsquo;t there. A vector never belongs to a row that was only half written.&lt;/p&gt;&#xA;&lt;p&gt;Promises like that are easy to make when nothing goes wrong. So the tests go looking for things going wrong, and the results are published with the code, in &lt;a href=&#34;https://github.com/hypercrux/hypercrux/tree/main/test/results&#34;&gt;test/results on GitHub&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>One SQLite File Instead of Three Databases: HyperCrux 0.1 Keeps Records, Links and Vectors Together</title>
      <link>https://hypercrux.com/one-sqlite-file-instead-of-three-databases-hypercrux-0.1-keeps-records-links-and-vectors-together/</link>
      <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/one-sqlite-file-instead-of-three-databases-hypercrux-0.1-keeps-records-links-and-vectors-together/</guid>
      <description>&lt;p&gt;Add search by meaning to an app and the data splits in three. The records stay in the regular database. Their embeddings go to a vector database, so the app can find documents that are about the same thing as a question. The connections between records, who owns what and which document cites which, end up in a graph database or a join table nobody likes. Then something has to copy every change from one to the others, and the day it misses one, a search returns a document that was deleted last week.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What Is a Multi-Model Database? Keys, SQL, Graphs and Vectors Explained</title>
      <link>https://hypercrux.com/what-is-a-multi-model-database-keys-sql-graphs-and-vectors-explained/</link>
      <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/what-is-a-multi-model-database-keys-sql-graphs-and-vectors-explained/</guid>
      <description>&lt;p&gt;A database is a way of keeping facts so you can find them again. The catch is that &amp;ldquo;find&amp;rdquo; means different things. Sometimes you know exactly which record you want. Sometimes you want every record that matches a condition. Sometimes you want whatever is connected to something you already have, or whatever means roughly the same as a sentence you just typed. Each of those questions has a shape of database built around it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://hypercrux.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/about/</guid>
      <description>&lt;p&gt;HyperCrux.com is the home of HyperCrux, a small database where every record has four handles. You can look a record up by its key, query it with SQL, follow its links to other records, or find it by how close its vector is to a question. All four reach the same records, in one SQLite file, so they always agree.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-it-exists&#34;&gt;Why It Exists&lt;/h2&gt;&#xA;&lt;p&gt;Apps that use AI tend to spread one set of facts across three systems. The records sit in a regular database. Their embeddings sit in a vector database, so the app can search by meaning. The connections between them sit in a graph database. Every change then has to be copied from one to the others, and sooner or later a copy goes missing. Search finds a document that was deleted. A link points at a record that isn&amp;rsquo;t there. For a small team, that&amp;rsquo;s three systems to run and a sync job to babysit, often for a few thousand documents.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contact</title>
      <link>https://hypercrux.com/contact/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/contact/</guid>
      <description>&lt;p&gt;HyperCrux.com would like to hear from:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Anyone trying HyperCrux out.&lt;/strong&gt; What worked, what got in the way, and what you used before.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Anyone who found a bug.&lt;/strong&gt; A search that missed a closer record, a link that outlived its record, an error you didn&amp;rsquo;t expect.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Anyone with an idea&lt;/strong&gt; for something HyperCrux should do, or a language it should have an example for.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Write to &lt;strong&gt;&lt;a href=&#34;mailto:info@hypercrux.com&#34;&gt;info@hypercrux.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Bug reports are also welcome on &lt;a href=&#34;https://github.com/hypercrux/hypercrux/issues&#34;&gt;GitHub&lt;/a&gt;. It helps to include what &lt;code&gt;hypercrux version&lt;/code&gt; prints, your operating system, and the steps that show the problem. Please don&amp;rsquo;t send real customer data: a few made-up records that show the same thing are enough.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Download HyperCrux</title>
      <link>https://hypercrux.com/download/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/download/</guid>
      <description>&lt;p&gt;The &lt;code&gt;hypercrux&lt;/code&gt; command is one file with nothing else to install. Each archive below holds it with its license files. The links always point to the latest release.&lt;/p&gt;&#xA;&lt;div style=&#34;overflow-x:auto&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;System&lt;/th&gt;&#xA;          &lt;th&gt;Download&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Linux, x86-64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/hypercrux/hypercrux/releases/latest/download/hypercrux_linux_amd64.tar.gz&#34;&gt;hypercrux_linux_amd64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Linux, ARM64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/hypercrux/hypercrux/releases/latest/download/hypercrux_linux_arm64.tar.gz&#34;&gt;hypercrux_linux_arm64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;macOS, Apple silicon&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/hypercrux/hypercrux/releases/latest/download/hypercrux_darwin_arm64.tar.gz&#34;&gt;hypercrux_darwin_arm64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;macOS, Intel&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/hypercrux/hypercrux/releases/latest/download/hypercrux_darwin_amd64.tar.gz&#34;&gt;hypercrux_darwin_amd64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Windows, x86-64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/hypercrux/hypercrux/releases/latest/download/hypercrux_windows_amd64.zip&#34;&gt;hypercrux_windows_amd64.zip&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;em&gt;Checksums are in &lt;a href=&#34;https://github.com/hypercrux/hypercrux/releases/latest/download/SHA256SUMS&#34;&gt;SHA256SUMS&lt;/a&gt;. Every release is listed on &lt;a href=&#34;https://github.com/hypercrux/hypercrux/releases&#34;&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;install&#34;&gt;Install&lt;/h2&gt;&#xA;&lt;p&gt;On Linux or macOS:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar -xzf hypercrux_linux_amd64.tar.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo mv hypercrux /usr/local/bin/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hypercrux version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The Linux binaries are static, so they run on any distribution. The macOS binaries aren&amp;rsquo;t signed by Apple, so macOS may block the first run; allow it in System Settings under Privacy &amp;amp; Security, or run &lt;code&gt;xattr -d com.apple.quarantine hypercrux&lt;/code&gt;. On Windows, unzip the archive and put &lt;code&gt;hypercrux.exe&lt;/code&gt; in a folder on your PATH.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick Start</title>
      <link>https://hypercrux.com/quick-start/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/quick-start/</guid>
      <description>&lt;p&gt;HyperCrux is a database where every record can be reached four ways: by key, by SQL, by following links and by similarity. This page takes you from nothing to all four in a few minutes, from the command line, from Go and from any other language.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-get-the-hypercrux-command&#34;&gt;1. Get the hypercrux Command&lt;/h2&gt;&#xA;&lt;p&gt;Download the archive for your system from &lt;a href=&#34;https://hypercrux.com/download/&#34;&gt;the download page&lt;/a&gt;, unpack it and put &lt;code&gt;hypercrux&lt;/code&gt; somewhere on your PATH. Check it works:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reference</title>
      <link>https://hypercrux.com/reference/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://hypercrux.com/reference/</guid>
      <description>&lt;p&gt;Everything HyperCrux offers, in one place: the Go calls, the commands, the SQL functions and the rules for keys, fields, links and vectors. The &lt;a href=&#34;https://github.com/hypercrux/hypercrux#readme&#34;&gt;README on GitHub&lt;/a&gt; explains each of them at more length, and &lt;a href=&#34;https://github.com/hypercrux/hypercrux/blob/main/FORMAT.md&#34;&gt;FORMAT.md&lt;/a&gt; describes the file for programs that write it without HyperCrux.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-rules&#34;&gt;The Rules&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Keys&lt;/strong&gt; are written &lt;code&gt;table:id&lt;/code&gt;, such as &lt;code&gt;docs:7&lt;/code&gt;. The table name is lower-case letters, digits and underscores, starting with a letter, up to 63 characters. Anything can follow the colon, up to 1,024 bytes for the whole key. A key never changes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fields&lt;/strong&gt; are the table&amp;rsquo;s columns. A put sets the fields it&amp;rsquo;s given, leaves the others alone, and adds a column for a field the table hasn&amp;rsquo;t seen. Setting a field to null clears it. Maps and lists are stored as JSON text.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Vectors&lt;/strong&gt; go in the field &lt;code&gt;vec&lt;/code&gt;, stored as float32 values. The first vector in a table sets the size for the whole table. A vector can&amp;rsquo;t be empty, all zeros, or contain NaN or infinity.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Links&lt;/strong&gt; go one way, from one record to another, with a type of 1 to 200 characters, such as &lt;code&gt;owns&lt;/code&gt; or &lt;code&gt;cites&lt;/code&gt;. Both records must exist. Deleting a record deletes its links.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Distance&lt;/strong&gt; is cosine distance: 0 for the same direction, 1 for unrelated, 2 for opposite. Search compares every vector that passes the filter, so results are exact.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;go&#34;&gt;Go&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;go get github.com/hypercrux/hypercrux&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style=&#34;overflow-x:auto&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Call&lt;/th&gt;&#xA;          &lt;th&gt;Does&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Open(path)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Opens a file, creating it if needed&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Get(key)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;A record&amp;rsquo;s fields, or &lt;code&gt;ErrNotFound&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Put(key, fields)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Creates or updates a record&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Delete(key)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Deletes a record and its links&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Scan(prefix, after, limit)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Records whose keys start with &lt;code&gt;prefix&lt;/code&gt;, in key order&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Exec&lt;/code&gt;, &lt;code&gt;Query&lt;/code&gt;, &lt;code&gt;QueryRow&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Plain SQL, with HyperCrux&amp;rsquo;s functions available&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Link(from, type, to)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Links two records&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Unlink(from, type, to)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Removes a link. An empty type removes every type&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Neighbours(key, dir, type)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;A record&amp;rsquo;s links: &lt;code&gt;Out&lt;/code&gt;, &lt;code&gt;In&lt;/code&gt; or &lt;code&gt;Both&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Walk(key, dir, type, depth)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Every record up to &lt;code&gt;depth&lt;/code&gt; links away, nearest first&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Nearest(table, vector, k, where, args...)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;The &lt;code&gt;k&lt;/code&gt; closest vectors, with an optional SQL filter&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Update(func(tx) error)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Runs a function as one transaction. &lt;code&gt;Tx&lt;/code&gt; has all the calls above&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Adopt(table)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Makes a table created with plain SQL a record table, or brings one back in step after a schema change&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Drop(table)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Deletes a record table with its records and their links&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Check()&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Confirms keys, rows, links and vectors agree&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Errors that break a rule wrap &lt;code&gt;ErrInvalid&lt;/code&gt;, and missing keys, links and tables wrap &lt;code&gt;ErrNotFound&lt;/code&gt;. The full documentation is on &lt;a href=&#34;https://pkg.go.dev/github.com/hypercrux/hypercrux&#34;&gt;pkg.go.dev&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
