AkurAI Build
Menu

AkurAI-Build

public

Latest change 5ecb45c5915e3bb122d43dbaf90b4eba39484c7d - organize native templates and reserve runtime routes by Olafur Bui

{% extends "layouts/docs.html" %}
{% block title %}Bunfork documentation{% endblock %}
{% block description %}Documentation for Bunfork native pages, static framework exports, CLI operations, encrypted SQLite, vectors, deployment, backups, and security.{% endblock %}
{% block docs_title %}Build less runtime. Keep more control.{% endblock %}
{% block docs_summary %}Bunfork is a Linux-first Rust binary with two serving modes: native MiniJinja pages with encrypted data, or verified static browser artifacts without data state.{% endblock %}
{% block docs_content %}
<section class="doc-section" aria-labelledby="choose-path">
  <h2 id="choose-path">Choose a serving path</h2>
  <div class="path-choices">
    <article>
      <h3>Native Rust application</h3>
      <p>Use file-routed MiniJinja pages, public assets, SQLCipher, and the authenticated vector API.</p>
      <a href="/docs/getting-started">Set up native mode <span aria-hidden="true">→</span></a>
    </article>
    <article>
      <h3>Static framework export</h3>
      <p>Build with your framework, admit the immutable output, then serve it without database keys or tokens.</p>
      <a href="/docs/frameworks">Prepare an export <span aria-hidden="true">→</span></a>
    </article>
  </div>
</section>

<section class="doc-section" aria-labelledby="first-check">
  <h2 id="first-check">Start with the repository check</h2>
  <p>The project pins Rust through <code>rust-toolchain.toml</code>. A locked release build plus Bunfork's own test command exercises both unit tests and the native runtime smoke path.</p>
  <pre><code>cargo build --release --locked
./target/release/bunfork test</code></pre>
  <p class="code-caption">The smoke check discovers routes and verifies an encrypted migration, vector search, and backup in temporary storage; the locked Rust tests cover restore behavior.</p>
</section>

<section class="doc-section" aria-labelledby="documentation-map">
  <h2 id="documentation-map">Documentation map</h2>
  <dl class="doc-map">
    <div><dt><a href="/docs/getting-started">Getting started</a></dt><dd>Build, create separate secrets, migrate, run, and probe the native server.</dd></div>
    <div><dt><a href="/docs/frameworks">Framework exports</a></dt><dd>Known output directories and manifest settings for six verified producers.</dd></div>
    <div><dt><a href="/docs/cli">CLI &amp; operations</a></dt><dd>The full command surface, global options, and public health endpoints.</dd></div>
    <div><dt><a href="/docs/data">SQLite &amp; vectors</a></dt><dd>Encrypted storage, exact migrations, scoped records, API calls, and hard limits.</dd></div>
    <div><dt><a href="/docs/deployment">Deploy &amp; recover</a></dt><dd>Digest-owned bundles, hardened systemd units, verified backups, and restore order.</dd></div>
    <div><dt><a href="/docs/security">Security</a></dt><dd>Trust boundaries, production checklist, and deliberate non-features.</dd></div>
  </dl>
</section>

<aside class="doc-callout" aria-labelledby="scope-heading">
  <h2 id="scope-heading">Scope, stated plainly</h2>
  <p>Bunfork serves compiled browser output; it does not implement framework source compatibility, SSR adapters, Node APIs, React Server Components, Nitro, or a JavaScript compiler. Native mode is a Rust application surface, not an emulation layer.</p>
</aside>

<nav class="docs-pagination" aria-label="Documentation pagination">
  <span></span>
  <a href="/docs/getting-started"><small>Next</small>Getting started <span aria-hidden="true">→</span></a>
</nav>
{% endblock %}