<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>BFE001 — Log</title>
  <subtitle>Short entries on open source, life, and whatever else.</subtitle>
  <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog.html" />
  <link rel="self" type="application/atom+xml" href="https://www.bfe001.net/atom.xml" />
  <id>https://www.bfe001.net/blog.html</id>
  <updated>2026-04-19T00:00:00Z</updated>
  <author><name>Mark Karpelès</name></author>
  <entry>
    <title>Weekly open source: OxideAV, in public</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w16.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w16.html</id>
    <published>2026-04-19T00:00:00Z</published>
    <updated>2026-04-19T00:00:00Z</updated>
    <summary>A pure-Rust media framework spread across 45+ repos; libwallet gains a multi-chain Swap API.</summary>
    <content type="html"><![CDATA[<p>First of what I'd like to keep as a weekly dispatch — a short digest of what
I've been shipping in open source. If nothing notable happened in a given
week, you won't see one.</p>
<h2>OxideAV, in public</h2>
<p>The big item this week: <strong><a href="https://github.com/OxideAV" rel="noopener noreferrer" target="_blank">OxideAV</a></strong> — a pure-Rust
media transcoding and streaming framework. It started the week as a workspace
monorepo; by the 17th I had extracted it into 45+ per-format crates, one
repository each, under the <code>OxideAV/</code> organisation. First <code>v0.0.3</code> / <code>v0.0.4</code>
releases went out the same day via <code>release-plz</code>, and the cycle has kept
running since.</p>
<p>The scope is broad on purpose:</p>
<ul>
<li><strong>Video</strong> — H.264, H.265, AV1, VP8, VP9, MPEG-1/2, MPEG-4 ASP, H.263,
  Theora, ProRes, MJPEG.</li>
<li><strong>Audio</strong> — AAC, MP1/2/3, Opus, Vorbis, FLAC, CELT, Speex, GSM,
  G.722 / G.723.1 / G.728 / G.729.</li>
<li><strong>Images</strong> — PNG/APNG, GIF, WebP, JPEG, AVIF (scaffold), JPEG 2000
  (scaffold), JPEG XL (scaffold).</li>
<li><strong>Containers</strong> — MP4/MOV, Matroska/WebM, Ogg, AVI, IFF; basic formats
  (WAV, raw PCM, slin) share a single crate.</li>
<li><strong>Trackers</strong> — MOD, S3M (decode-only by design).</li>
<li><strong>Subtitles</strong> — PGS, DVB, VobSub, ASS/SSA.</li>
<li><strong>Plumbing</strong> — <code>oxideav-core</code> (Packet / Frame / Timestamp), <code>oxideav-codec</code>
  and <code>oxideav-container</code> (traits + registries), <code>oxideav-pixfmt</code> (conversion
  matrix, quantisation, dither), and <code>oxideav-job</code> — a JSON-driven transcode
  graph executed by a pipelined multithreaded runtime.</li>
</ul>
<p>The rule: <strong>no C dependencies anywhere in the tree</strong>. No <code>ffmpeg</code>, no
<code>libav</code>, no <code>*-sys</code> crates, direct or transitive. Every codec is implemented
from the spec. There's a CLI (<code>oxideav-cli</code>) and a reference SDL2+TUI player
(<code>oxideplay</code>).</p>
<p>It's early — v0.0.x across the board, coverage is uneven, some codecs are
decode-only, others have encoders landing week by week, a few are still
register-but-refuse scaffolding reserving codec ids. The intent is to build
toward something you can drop into a real pipeline without pulling a gigabyte
of C along with it.</p>
<p>H.264 got the heaviest push of the week — 134 commits closing out
4:2:2 / 4:4:4 CABAC decode, MBAFF P/B slice data, SI/SP primary slice decode,
<code>separate_colour_plane_flag=1</code>, plus a first-pass CAVLC P-slice encoder
(<code>P_L0_16x16</code> + <code>P_Skip</code>, integer motion estimation). AAC got short-block
emission with a real state machine and per-channel TNS analysis. Plenty left
to do in both.</p>
<h2>libwallet: Swap API</h2>
<p><strong><a href="https://github.com/KarpelesLab/libwallet" rel="noopener noreferrer" target="_blank">KarpelesLab/libwallet</a></strong> shipped
<code>0.3.14</code> and <code>0.3.15</code>. The headline is a multi-chain swap API — Jupiter Ultra
and dFlow on Solana, 1inch on EVM — exposed through a single
provider-abstracted surface with approval detection (the wallet tells the UI
when an ERC-20 allowance is needed before a swap can run). Solana priority
fees now route through proper <code>ComputeBudget</code> instructions, and displayed
Solana balances finally exclude the rent-exempt reserve instead of
double-counting it.</p>
<h2>Also this week</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/goavif" rel="noopener noreferrer" target="_blank">goavif</a></strong> — pure-Go AVIF codec,
  also launched this week, same "no cgo" rule as OxideAV.</li>
<li><strong><a href="https://github.com/KarpelesLab/goro" rel="noopener noreferrer" target="_blank">goro</a></strong> / <strong><a href="https://github.com/KarpelesLab/goro-rs" rel="noopener noreferrer" target="_blank">goro-rs</a></strong>
  — PHP in Go, and a parallel Rust port. Both saw steady commits.</li>
<li><strong><a href="https://github.com/KarpelesLab/strtotime" rel="noopener noreferrer" target="_blank">strtotime</a></strong> — a Go port of
  PHP's <code>strtotime()</code>: timezone-aware natural-language date parsing, RFC 2822,
  ISO 8601, relative dates. Landed in a single day on April 13.</li>
</ul>
<h2>Next week</h2>
<p>Continued work on OxideAV across the board.</p>]]></content>
  </entry>
  <entry>
    <title>Starting a log, again</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/starting-again.html" />
    <id>https://www.bfe001.net/blog/starting-again.html</id>
    <published>2026-04-19T00:00:00Z</published>
    <updated>2026-04-19T00:00:00Z</updated>
    <summary>Why there's a log here now, and what I plan to put in it.</summary>
    <content type="html"><![CDATA[<p>I used to write. A blog, LiveJournal-era entries, technical notes on a handful of
sites I no longer remember the passwords to. Most of that is gone, and what
survives is scattered across caches and archives I don't particularly want to
revisit.</p>
<p>So: starting again, on my own domain this time, with a plan to keep things
small. Short posts. One idea at a time. No schedule to fall off of.</p>
<p>The topics will drift, but the shape I'm aiming for is roughly this:</p>
<ul>
<li><strong>Open source</strong> — things I'm building or breaking, mostly in the
  <a href="https://joseon.com" rel="noopener noreferrer" target="_blank">Joseon</a> / KLB stack. Small tools, design decisions,
  occasional post-mortems.</li>
<li><strong>Life</strong> — whatever non-technical thing is worth writing down. I won't
  write about it if it's not worth your time to read.</li>
<li><strong>Reference for my future self</strong> — the unglamorous but honest reason most
  developer blogs exist. If I looked something up three times this month, it
  probably belongs here.</li>
</ul>
<p>If nothing ends up here for a while, assume I'm building rather than talking
about building. Both are fine.</p>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: goro CI push, two new Go libs, one shelved experiment</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w15.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w15.html</id>
    <published>2026-04-12T00:00:00Z</published>
    <updated>2026-04-12T00:00:00Z</updated>
    <summary>PHP-in-Go narrows the CI gap; anyhash and pktkit land; litertlm-ios gets shelved honestly rather than dragged on.</summary>
    <content type="html"><![CDATA[<p>Week of April 6–12. Quality push on the PHP-in-Go runtime, two new Go
libraries, and one project I shelved honestly rather than dragged on.</p>
<h2>goro: closing the CI gap</h2>
<p><strong><a href="https://github.com/KarpelesLab/goro" rel="noopener noreferrer" target="_blank">KarpelesLab/goro</a></strong> is a
reimplementation of PHP in pure Go, tested against PHP's own test suite.
This week it went from roughly <strong>256 failing tests to ~199</strong>, across
82 commits: <code>$arr[] .= …</code> compound-assignment double-append bug,
readonly-property error messages matching upstream exactly, <code>DateTime</code>
serialisation rejecting &gt;4-digit years, <code>createFromFormat</code> null-byte
handling, multibyte-UTF-8 in <code>EXPECTF</code> regex fixtures, and a proper
<code>SKIPIF → skipTest</code> path in the test runner.</p>
<p>A lot of it is error-message text and edge-case conformance rather
than "big features", but that's what narrows the gap with real-world
PHP — the whole point is to get PHP code to run on goro without
noticing. The parallel Rust port, <strong><a href="https://github.com/KarpelesLab/goro-rs" rel="noopener noreferrer" target="_blank">goro-rs</a></strong>,
got 35 commits the same week.</p>
<h2>litertlm-ios: shelved</h2>
<p>I started <strong><a href="https://github.com/KarpelesLab/litertlm-ios" rel="noopener noreferrer" target="_blank">litertlm-ios</a></strong>
on the 6th and shelved it by the 10th. The goal was running Google's
LiteRT-LM on iPhone with Metal GPU acceleration. It compiles, it runs,
it produces a working <code>LiteRTLM.xcframework</code> — but Google's GPU
accelerator for LiteRT-LM is proprietary, and the open-source path only
exists if you bridge LiteRT-LM's accelerator-plugin interface to
TFLite's Metal delegate. It works as a workaround, not as a foundation
for production.</p>
<p>The repo <a href="https://github.com/KarpelesLab/litertlm-ios#readme" rel="noopener noreferrer" target="_blank">README</a>
has a full post-mortem and a comparison table pointing to the runtimes
you should probably use instead today — MLX Swift, SwiftLM, llama.cpp,
MLC-LLM. If Google ever open-sources the real LiteRT-LM GPU path
(there's <a href="https://github.com/google-ai-edge/LiteRT-LM/issues/1050" rel="noopener noreferrer" target="_blank">an upstream issue</a>),
the build infrastructure here is ready to pick back up. Until then:
better to write down what I learned and move on.</p>
<h2>Two new Go libraries</h2>
<p><strong><a href="https://github.com/KarpelesLab/anyhash" rel="noopener noreferrer" target="_blank">anyhash</a></strong> — a Go hashing
library that selects from 60 algorithms by name, not by import.
<code>New("sha256")</code> instead of <code>sha256.New()</code>. Case-insensitive name
matching, <code>Clone()</code> to snapshot hash state mid-computation, continue
writing after <code>Sum()</code>, HMAC and HKDF, and <strong>PHP-compatible state
serialisation</strong> — a hash started in PHP can finish in Go and vice
versa. No external dependencies; all algorithms use only the Go
standard library.</p>
<p><strong><a href="https://github.com/KarpelesLab/pktkit" rel="noopener noreferrer" target="_blank">pktkit</a></strong> — zero-copy L2/L3
packet handling for Go. <code>Frame</code> and <code>Packet</code> are <code>[]byte</code> aliases with
typed header accessors — no wrapper allocation, no copies on the hot
path. Building block for virtual network topologies: devices, hubs,
adapters, tunnels, with IPv4 + IPv6 support throughout. Nine commits
this week filling out the API surface. (The repo itself is from
April 4; this was its first full week.)</p>
<h2>Also this week</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/strtotime" rel="noopener noreferrer" target="_blank">strtotime</a></strong> — 17
  commits warming up the PHP-compatible date parser ahead of its
  finishing push.</li>
<li><strong><a href="https://github.com/KarpelesLab/libwallet" rel="noopener noreferrer" target="_blank">libwallet</a></strong> — 12
  commits of incremental work on the multi-chain mobile wallet.</li>
<li><strong><a href="https://github.com/KarpelesLab/aipencil" rel="noopener noreferrer" target="_blank">aipencil</a></strong> — early
  work on a CLI that renders structured JSON scene descriptions to
  SVG and PNG. The idea: give AI systems a deterministic, cheap way
  to produce images by declaring content and relationships rather
  than sizes and coordinates.</li>
<li><strong><a href="https://github.com/KarpelesLab/smokenrg" rel="noopener noreferrer" target="_blank">smokenrg</a></strong> — mirrored
  an old utility from sed.free.fr for extracting audio from Nero NRG
  files. Pure preservation; free hosting doesn't last forever.</li>
</ul>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: Go libraries for goro</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w14.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w14.html</id>
    <published>2026-04-05T00:00:00Z</published>
    <updated>2026-04-05T00:00:00Z</updated>
    <summary>Four new pure-Go libraries — PCRE2, bzip2 compression, streaming MIME, raw tzdata — all for goro, closing gaps in what PHP needs that Go doesn't have natively. Plus pktkit, aipencil, bnpm, slirp.</summary>
    <content type="html"><![CDATA[<p>Week of March 30 – April 5. A cluster of new pure-Go libraries, and
they're all motivated by the same thing: <strong>goro</strong>. PHP is a big
language, and making it work in pure Go means closing gaps in what
Go can do without cgo or external deps.</p>
<h2>Pure-Go libraries for goro</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/gopcre2" rel="noopener noreferrer" target="_blank">gopcre2</a></strong> — PCRE2 in
  pure Go, no cgo. Backreferences, lookahead / lookbehind, atomic
  groups, recursive patterns, Unicode properties. Go's stdlib <code>regexp</code>
  uses RE2 for guaranteed linear time and deliberately omits these
  features — but PHP's <code>preg_*</code> family relies on them, so goro
  needs them too.</li>
<li><strong><a href="https://github.com/KarpelesLab/gobzip2" rel="noopener noreferrer" target="_blank">gobzip2</a></strong> — pure-Go
  bzip2 <em>compression</em> as well as decompression. The standard library's
  <code>compress/bzip2</code> is decompression-only; goro needs PHP's
  <code>bzcompress</code> to work, hence both directions implemented from the
  bzip2 1.0.8 reference.</li>
<li><strong><a href="https://github.com/KarpelesLab/gomailparse" rel="noopener noreferrer" target="_blank">gomailparse</a></strong> —
  streaming MIME parser. Reads from an <code>io.Reader</code> in a single pass
  and stores only headers and byte offsets, no body buffering.
  Backs the PHP mail-handling surface in goro, and is designed to
  stay efficient when the messages it's indexing are very large.</li>
<li><strong><a href="https://github.com/KarpelesLab/gotz" rel="noopener noreferrer" target="_blank">gotz</a></strong> — raw IANA timezone
  data access in Go: transitions, zone types, POSIX TZ rules,
  embedded <code>tzdata</code>. Deliberately under the standard <code>time</code>
  package's abstraction, because goro's date/timezone machinery
  needs the underlying data directly to match PHP's semantics.</li>
</ul>
<h2>Also seeded this week</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/pktkit" rel="noopener noreferrer" target="_blank">pktkit</a></strong> — zero-copy
  L2/L3 packet handling. <code>Frame</code> and <code>Packet</code> are <code>[]byte</code> aliases
  with typed header accessors — no wrapper allocation, no copies on
  the hot path. Seeded on April 4 and ran up 35 commits by the end
  of the week laying down IPv4 + IPv6 primitives. Separate thread
  from goro, but fits the same "pure Go, no cgo" rule.</li>
<li><strong><a href="https://github.com/KarpelesLab/aipencil" rel="noopener noreferrer" target="_blank">aipencil</a></strong> — CLI that
  renders structured JSON scene descriptions to SVG and PNG. The idea:
  give AI systems a deterministic, cheap way to produce images by
  declaring content and relationships, not sizes and coordinates.
  Same input always produces the same image. No GPU. First full week
  of activity after seeding on April 2 — 18 commits.</li>
</ul>
<h2>Sandboxing + networking</h2>
<p>Two networking-adjacent projects that fit together more than the
topic suggests:</p>
<p><strong><a href="https://github.com/KarpelesLab/bnpm" rel="noopener noreferrer" target="_blank">bnpm</a></strong> — "Bubble NPM" —
sandboxes package-manager commands inside Linux namespaces. Mount
namespace with <code>pivot_root</code> restricts the filesystem to the project
directory (read-write) plus read-only system paths. An empty network
namespace gives build/test commands zero network access; install
commands go through a userspace TAP proxy that filters DNS and IPs
to allowed registries only. No root required — unprivileged user
namespaces do the work. The goal is to make a malicious <code>install</code>
script physically unable to reach outside the project tree.</p>
<p><strong><a href="https://github.com/KarpelesLab/slirp" rel="noopener noreferrer" target="_blank">slirp</a></strong> — user-mode NAT
and IP stack in Go, 28 commits this week. Same intent as the
original SLIRP: give a process TCP/IP connectivity without root,
<code>CAP_NET_ADMIN</code>, or a TUN device. Useful for VM networking,
containers, network testing, and anything that wants a protocol
stack that runs fully in userspace.</p>
<h2>PHP in Go, PHP in Rust</h2>
<p><strong><a href="https://github.com/KarpelesLab/goro" rel="noopener noreferrer" target="_blank">goro</a></strong> got 128 commits and
the parallel Rust port <strong><a href="https://github.com/KarpelesLab/goro-rs" rel="noopener noreferrer" target="_blank">goro-rs</a></strong>
got 50. Both continuing the slow grind toward full PHP test-suite
conformance.</p>
<h2>Also this week</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/libwallet" rel="noopener noreferrer" target="_blank">libwallet</a></strong> — 13
  commits, steady incremental work on the multi-chain mobile wallet.</li>
<li><strong><a href="https://github.com/unixshells/mobile" rel="noopener noreferrer" target="_blank">unixshells/mobile</a></strong> — 13
  commits on the mobile SSH / Mosh / SFTP client for iOS and Android.</li>
<li><strong><a href="https://github.com/KarpelesLab/teamclaude" rel="noopener noreferrer" target="_blank">teamclaude</a></strong> — 11
  commits on the multi-account Claude proxy with quota-based
  rotation.</li>
<li><strong><a href="https://github.com/KarpelesLab/squashfs" rel="noopener noreferrer" target="_blank">squashfs</a></strong> — 8
  commits on the pure-Go SquashFS implementation (read / write).</li>
</ul>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: teamclaude, blindsig, lnp22 — a crypto-heavy week</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w13.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w13.html</id>
    <published>2026-03-29T00:00:00Z</published>
    <updated>2026-03-29T00:00:00Z</updated>
    <summary>teamclaude launches; a blind-signature library and a lattice-based NIZK framework land. goro + goro-rs keep grinding.</summary>
    <content type="html"><![CDATA[<p>Week of March 23–29. 536 commits across 35 repos. A big crypto
thread on top of the usual PHP runtime work.</p>
<h2>teamclaude</h2>
<p><strong><a href="https://github.com/KarpelesLab/teamclaude" rel="noopener noreferrer" target="_blank">teamclaude</a></strong> — 52
commits on a new project, seeded the 24th. Multi-account Claude
proxy with automatic quota-based rotation. Sits transparently
between Claude Code and the Anthropic API, managing multiple Claude
Max (or API key) accounts and switching to the next when one
approaches its session (5h) or weekly (7d) quota limit (default
threshold 98%). Auto-retry on 429 with <code>retry-after</code>, failover on
persistent errors. The point is: you can actually finish the thing
you were working on instead of hitting a wall at the quota edge.</p>
<h2>Two crypto libraries</h2>
<p><strong><a href="https://github.com/KarpelesLab/blindsig" rel="noopener noreferrer" target="_blank">blindsig</a></strong> — 7 commits
on a library of five blind-signature schemes in Go. A blind
signature lets a signer sign a message <em>without learning what the
message is</em>, and lets a holder present the signed token later
<em>without the signer being able to link it back</em> to the signing
session. Useful for anonymous credentials, privacy-preserving
attestations, and voting. The five schemes span different assumptions,
quantum-safety profiles, and verification cost profiles so you can
pick the one that fits the threat model.</p>
<p><strong><a href="https://github.com/KarpelesLab/lnp22" rel="noopener noreferrer" target="_blank">lnp22</a></strong> — 5 commits seeding
a self-contained Go implementation of the <a href="https://eprint.iacr.org/2022/284" rel="noopener noreferrer" target="_blank">LNP22 lattice-based NIZK
proof system</a> (Lyubashevsky, Nguyen,
Plançon, CRYPTO 2022). Proves knowledge of short vectors satisfying
linear relations over polynomial rings — building block for range
proofs and proof composition in post-quantum systems. No external
cryptography dependencies beyond <code>golang.org/x/crypto/sha3</code>.</p>
<h2>PHP runtime work, still</h2>
<p><strong><a href="https://github.com/KarpelesLab/goro" rel="noopener noreferrer" target="_blank">goro</a></strong> took 249 commits,
<strong><a href="https://github.com/KarpelesLab/goro-rs" rel="noopener noreferrer" target="_blank">goro-rs</a></strong> took 67. Slow,
steady convergence toward the same failing-tests target from both
directions.</p>
<h2>Also this week</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/tss-lib" rel="noopener noreferrer" target="_blank">tss-lib</a></strong> — 18
  commits on the fork of Binance's threshold-signature library.</li>
<li><strong><a href="https://github.com/KarpelesLab/chiefsplitter" rel="noopener noreferrer" target="_blank">chiefsplitter</a></strong>
  — 16 commits on a new Solana program for configurable fee
  splitting. Anyone can create a splitter PDA that receives SOL /
  tokens and distributes them by percentage share, with optional
  auto-swap of non-whitelisted tokens through Jupiter, Raydium, etc.</li>
<li><strong><a href="https://github.com/MagicalTux/bfe001" rel="noopener noreferrer" target="_blank">bfe001</a></strong> — 15 commits
  continuing work on this site.</li>
<li><strong><a href="https://github.com/KarpelesLab/libwallet" rel="noopener noreferrer" target="_blank">libwallet</a></strong> — 14
  commits on the multi-chain mobile wallet.</li>
<li><strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong> — 11 commits.</li>
<li><strong><a href="https://github.com/KarpelesLab/secp256k1" rel="noopener noreferrer" target="_blank">secp256k1</a></strong> — 10
  commits on the decred-derived secp256k1 extraction.</li>
<li><strong><a href="https://github.com/KarpelesLab/chiefstaker-sdk" rel="noopener noreferrer" target="_blank">chiefstaker-sdk</a></strong>
  — 8 commits on a client SDK for chiefstaker.</li>
<li><strong><a href="https://github.com/KarpelesLab/massalib" rel="noopener noreferrer" target="_blank">massalib</a></strong>,
  <strong><a href="https://github.com/KarpelesLab/bech32m" rel="noopener noreferrer" target="_blank">bech32m</a></strong>,
  <strong><a href="https://github.com/KarpelesLab/ethrpc" rel="noopener noreferrer" target="_blank">ethrpc</a></strong> — small
  focused pushes.</li>
</ul>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: goro and goro-rs, full throttle</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w12.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w12.html</id>
    <published>2026-03-22T00:00:00Z</published>
    <updated>2026-03-22T00:00:00Z</updated>
    <summary>Both PHP reimplementations get hundreds of commits each; mpcegosign seeds — threshold RSA signing for EGo SGX enclaves.</summary>
    <content type="html"><![CDATA[<p>Week of March 16–22. 634 commits — the biggest week of the year so
far. The two PHP reimplementations took 556 of those between them.</p>
<h2>goro ↔ goro-rs</h2>
<p><strong><a href="https://github.com/KarpelesLab/goro" rel="noopener noreferrer" target="_blank">goro</a></strong> took 281 commits and
<strong><a href="https://github.com/KarpelesLab/goro-rs" rel="noopener noreferrer" target="_blank">goro-rs</a></strong> took 275 — the
Rust port, only a week old, has already caught up to the Go side in
commit velocity. Both grinding toward the same PHP test-suite
target, from different languages.</p>
<h2>mpcegosign (prototype — not kept)</h2>
<p><strong><a href="https://github.com/KarpelesLab/mpcegosign" rel="noopener noreferrer" target="_blank">mpcegosign</a></strong> — 13
commits on a new prototype. EGo's <code>ego sign</code> normally relies on a
single RSA-3072 private key to sign SGX enclaves; this explored
replacing it with <strong>t-of-n threshold RSA</strong>: any t of n parties can
sign, no single party can sign alone, interactive group-chat keygen
(shares protected with X25519 ECDH + AES-256-GCM), MRENCLAVE
computation delegated to <code>ego-oesign</code> for compatibility.</p>
<p>The build works, but after living with the shape of it we decided
it wasn't something we actually wanted to depend on. The repo stays
up as a reference implementation of the concept — not as part of
the production toolchain.</p>
<h2>Also this week</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong> — 20 commits.</li>
<li><strong><a href="https://github.com/KarpelesLab/strtotime" rel="noopener noreferrer" target="_blank">strtotime</a></strong> — 6
  commits — early work that grew into the full PHP-compatible date
  parser.</li>
<li><strong><a href="https://github.com/AzusaOS/azusa-opensource-recipes" rel="noopener noreferrer" target="_blank">AzusaOS/azusa-opensource-recipes</a></strong>
  — 5 commits on Azusa's package build recipes.</li>
</ul>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: goro-rs, and this site</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w11.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w11.html</id>
    <published>2026-03-15T00:00:00Z</published>
    <updated>2026-03-15T00:00:00Z</updated>
    <summary>goro-rs seeds a parallel Rust port of the PHP runtime; goro keeps hammering; portablesql splits into driver crates; this very site gets its first commits.</summary>
    <content type="html"><![CDATA[<p>Week of March 9–15. 439 commits — a big one — spread across a lot of
threads.</p>
<h2>goro-rs: PHP in Rust, because why not</h2>
<p><strong><a href="https://github.com/KarpelesLab/goro" rel="noopener noreferrer" target="_blank">goro</a></strong> took 187 commits and
the new <strong><a href="https://github.com/KarpelesLab/goro-rs" rel="noopener noreferrer" target="_blank">goro-rs</a></strong>
(seeded the 14th) took 75 on its first two days. Same target — a
PHP 8.5 implementation that passes the PHP test suite — in Rust this
time. goro is nearing completion; goro-rs is me taking another pass
at the same problem in a different language, because why not.
There's no grand strategy behind running both; both should
eventually pass the same tests.</p>
<h2>psql moves to its own org</h2>
<p><strong><a href="https://github.com/portablesql/psql" rel="noopener noreferrer" target="_blank">psql</a></strong> was originally a
single repo. This week it moved into a dedicated <code>portablesql/</code> org
so the driver layer could split out into separate repos —
<a href="https://github.com/portablesql/psql-sqlite" rel="noopener noreferrer" target="_blank">psql-sqlite</a>,
<a href="https://github.com/portablesql/psql-pgsql" rel="noopener noreferrer" target="_blank">psql-pgsql</a>,
<a href="https://github.com/portablesql/psql-mysql" rel="noopener noreferrer" target="_blank">psql-mysql</a>, plus a
shared <a href="https://github.com/portablesql/psql-test" rel="noopener noreferrer" target="_blank">psql-test</a>
integration-test harness that runs the core against every driver
together. The move to its own org was the whole point: drivers
needed to live separately, and a single-repo layout couldn't
accommodate that. 23 commits on the core this week on top of the
reorganisation.</p>
<h2>bfe001.net</h2>
<p>Quieter milestone: <strong><a href="https://github.com/MagicalTux/bfe001" rel="noopener noreferrer" target="_blank">bfe001</a></strong>
— the repo behind this site — got its first commits on the 13th.
45 of them by the end of the week setting up the Amiga hardware
section, memory-map layout, multi-language plumbing, and the
initial timeline. It'll be a while before the site is worth pointing
at, but the bones are in.</p>
<h2>Also this week</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong> — 48 commits.
  The project is now a daily driver; the fixes that land are the
  kind that come out of actually using it.</li>
<li><strong><a href="https://github.com/KarpelesLab/algoc" rel="noopener noreferrer" target="_blank">algoc</a></strong> — 14 commits.</li>
<li><strong><a href="https://github.com/KarpelesLab/chiefstaker" rel="noopener noreferrer" target="_blank">chiefstaker</a></strong> — 8
  commits.</li>
<li><strong><a href="https://github.com/KarpelesLab/hbclient" rel="noopener noreferrer" target="_blank">hbclient</a></strong> — 2
  commits on a new Go client for a sentinel heartbeat DNS protocol.</li>
</ul>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: psql starts, and FES gets a real read</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w10.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w10.html</id>
    <published>2026-03-08T00:00:00Z</published>
    <updated>2026-03-08T00:00:00Z</updated>
    <summary>portablesql/psql pushes forward; fes-analysis publishes a short paper debunking a "quantum-safe" fractal cipher; algoc and jwt get parallel attention.</summary>
    <content type="html"><![CDATA[<p>Week of March 2–8. 82 commits spread wider than usual — four projects
getting real attention.</p>
<h2>portablesql/psql</h2>
<p><strong><a href="https://github.com/portablesql/psql" rel="noopener noreferrer" target="_blank">portablesql/psql</a></strong> — 20
commits on the Go SQL library: object binding, query builder, hooks,
associations, vector column support. The pitch is "GORM, but focused
on modern Go (generics, 1.23 iterators) with a lighter footprint",
targeting MySQL, PostgreSQL, CockroachDB, and SQLite through a
pluggable driver layer.</p>
<h2>fes-analysis: a "quantum-safe" cipher gets checked</h2>
<p><strong><a href="https://github.com/KarpelesLab/fes-analysis" rel="noopener noreferrer" target="_blank">fes-analysis</a></strong> —
seeded on the 7th. Independent security analysis of the "Fractal
Encryption Standard" by Portalz PTY LTD, which claims to "replace
quantum vulnerable AES encryption". Despite the fractal branding,
FES reduces to a stream cipher that XORs the plaintext with a
keystream generated by iterating the Mandelbrot set as a PRNG.
Predictably, the result is weaker than AES — the opposite direction
from its marketing. The write-up lays out the cipher's structure and
the concrete attack paths.</p>
<h2>Also this week</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/algoc" rel="noopener noreferrer" target="_blank">algoc</a></strong> — 11 commits
  extending the DSL and target-language coverage.</li>
<li><strong><a href="https://github.com/KarpelesLab/jwt" rel="noopener noreferrer" target="_blank">jwt</a></strong> — 11 commits on the
  zero-dependency Go JWT library.</li>
<li><strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong> — 10 commits of
  steady polish.</li>
<li><strong><a href="https://github.com/KarpelesLab/ldcache" rel="noopener noreferrer" target="_blank">ldcache</a></strong> — 7 commits
  on the <code>ld.so.cache</code> tooling.</li>
<li><strong><a href="https://github.com/KarpelesLab/lambda" rel="noopener noreferrer" target="_blank">lambda</a></strong> — 6 commits.</li>
</ul>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: a quiet week</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w09.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w09.html</id>
    <published>2026-03-01T00:00:00Z</published>
    <updated>2026-03-01T00:00:00Z</updated>
    <summary>13 commits, mostly a new Solana program seeding: chiefburner.</summary>
    <content type="html"><![CDATA[<p>Week of February 23 – March 1. Thin week — only 13 commits of actual
work. Genuinely quiet, not hidden behind private repos.</p>
<p>The one thing worth noting:
<strong><a href="https://github.com/KarpelesLab/chiefburner" rel="noopener noreferrer" target="_blank">chiefburner</a></strong> seeded
on the 26th — another Solana program, this one a burn-or-delete
instruction unified into a single call, with remaining-accounts
batching for efficiency. Sibling to <code>chiefstaker</code>; part of the same
on-chain toolkit.</p>
<p>Otherwise: 2 commits on <strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong>
and 2 on <strong><a href="https://github.com/vpdotnet/wgnet" rel="noopener noreferrer" target="_blank">wgnet</a></strong>. That's it.</p>
<p>Some weeks the work shows up elsewhere — design, reading, thinking —
and doesn't leave a trail on GitHub.</p>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: wgnet — WireGuard as a library</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w08.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w08.html</id>
    <published>2026-02-22T00:00:00Z</published>
    <updated>2026-02-22T00:00:00Z</updated>
    <summary>wgnet seeds under vpdotnet: WireGuard crypto and session management behind a "feed UDP, get packets" interface. chiefstaker keeps settling.</summary>
    <content type="html"><![CDATA[<p>Week of February 16–22. 51 commits. A networking library seeds, and
chiefstaker keeps settling.</p>
<h2>wgnet</h2>
<p><strong><a href="https://github.com/vpdotnet/wgnet" rel="noopener noreferrer" target="_blank">vpdotnet/wgnet</a></strong> — 14 commits
on a new Go library that abstracts the WireGuard protocol behind a
simple interface: feed it UDP packets, get back decrypted network
packets, and vice versa. All the cryptography (X25519, ChaCha20-Poly1305),
handshakes, session state, rekeying, and replay protection are
handled internally. You wire it into whatever data source you want —
a TUN device, a userspace NAT, a test harness — and it stays
agnostic about transport.</p>
<h2>chiefstaker</h2>
<p>22 more commits this week rounding out
<strong><a href="https://github.com/KarpelesLab/chiefstaker" rel="noopener noreferrer" target="_blank">chiefstaker</a></strong> after
last week's heavy push — mostly hardening around edge cases: pool
lifecycle, reward-claim math, and parameter-change semantics on
already-staked positions.</p>
<h2>Also</h2>
<p><strong><a href="https://github.com/KarpelesLab/outscript" rel="noopener noreferrer" target="_blank">outscript</a></strong> — 7 commits.
<strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong> — 7 commits.</p>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: chiefstaker, in earnest</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w07.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w07.html</id>
    <published>2026-02-15T00:00:00Z</published>
    <updated>2026-02-15T00:00:00Z</updated>
    <summary>Heavy week on the Solana staking program — 48 commits filling out the on-chain logic and edge cases.</summary>
    <content type="html"><![CDATA[<p>Week of February 9–15. 60 commits, 48 of them on
<strong><a href="https://github.com/KarpelesLab/chiefstaker" rel="noopener noreferrer" target="_blank">chiefstaker</a></strong>.</p>
<p>On-chain code gets verbose fast: every instruction needs account
validation, rent calculation, overflow checks, and tight size
constraints. This week was mostly that — closing out the core
staking flows, the SOL reward distribution, and the exponential
weighting curve with enough test coverage that the next person to
read it doesn't have to reverse-engineer it.</p>
<p>Also: 10 commits on <strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong>
(polish + fixes), and single commits on
<strong><a href="https://github.com/KarpelesLab/integration-docs" rel="noopener noreferrer" target="_blank">integration-docs</a></strong>
and <strong><a href="https://github.com/KarpelesLab/replvar" rel="noopener noreferrer" target="_blank">replvar</a></strong>.</p>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: chiefstaker — time-weighted Solana staking</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w06.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w06.html</id>
    <published>2026-02-08T00:00:00Z</published>
    <updated>2026-02-08T00:00:00Z</updated>
    <summary>cterm slows; chiefstaker seeds — a Solana program for staking Token 2022 tokens with exponential-curve reward weight.</summary>
    <content type="html"><![CDATA[<p>Week of February 2–8. 49 commits total — the quietest real working
week in a while.</p>
<h2>chiefstaker, seeded</h2>
<p><strong><a href="https://github.com/KarpelesLab/chiefstaker" rel="noopener noreferrer" target="_blank">chiefstaker</a></strong> — a
new Solana program, created on the 8th. It lets anyone create a pool
to stake Token 2022 tokens and receive time-weighted SOL rewards.
Staking weight grows over time along an exponential curve —
<code>weight = stake_amount × (1 − e^(−age / tau))</code> — so the longer a
position sits, the more of the reward it earns, with <code>tau</code>
configurable per pool. Pool creation is permissionless; creators
pick their own parameters.</p>
<p>Only 6 commits this week, but the program structure is there; the
push comes next.</p>
<h2>cterm</h2>
<p>37 commits on <strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong> —
the steady-state rate you'd expect from a three-week-old project
that's been taking 70–120 commits per week. Rounding off edges more
than building new subsystems.</p>
<h2>Also this week</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/swiftrest" rel="noopener noreferrer" target="_blank">swiftrest</a></strong> — 3
  commits.</li>
<li><strong><a href="https://github.com/KarpelesLab/x11anywhere" rel="noopener noreferrer" target="_blank">x11anywhere</a></strong> — 2
  commits.</li>
<li><strong><a href="https://github.com/vpdotnet/vpnetd-sgx" rel="noopener noreferrer" target="_blank">vpdotnet/vpnetd-sgx</a></strong>
  — 1 commit on the VP.NET SGX enclave.</li>
</ul>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: cterm, still going</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w05.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w05.html</id>
    <published>2026-02-01T00:00:00Z</published>
    <updated>2026-02-01T00:00:00Z</updated>
    <summary>Third heavy week on cterm; 95 of the week's 100 commits land there.</summary>
    <content type="html"><![CDATA[<p>Week of January 26 – February 1. Third straight week dominated by
<strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong> — 95 of 100
commits. A lot of small quality-of-life features for Claude users
in a terminal, layered on top of the core VT work.</p>
<p>Quiet outside that. Four commits on
<strong><a href="https://github.com/KarpelesLab/outscript" rel="noopener noreferrer" target="_blank">outscript</a></strong> and one on
<strong><a href="https://github.com/AzusaOS/azusa-opensource-recipes" rel="noopener noreferrer" target="_blank">AzusaOS/azusa-opensource-recipes</a></strong>.</p>
<p>No promises this is the last cterm-heavy week.</p>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: cterm, week two</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w04.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w04.html</id>
    <published>2026-01-25T00:00:00Z</published>
    <updated>2026-01-25T00:00:00Z</updated>
    <summary>Second heavy week on cterm — 119 commits filling out platform integration, rendering, and AI-coding-assistant ergonomics.</summary>
    <content type="html"><![CDATA[<p>Week of January 19–25. <strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong>
took 119 of the week's 126 commits — the kind of week where one
project eats everything else.</p>
<p>Nothing ships in a terminal emulator without grinding through a long
list: rendering pipelines, input handling quirks, platform clipboard
APIs, scrollback, search, configuration, tabs, splits, window
restoration, accessibility glue, keyboard-layout edge cases. Most of
that is invisible from outside. The target is to make day-to-day
work with Claude — and with a normal shell — a bit smoother than it
would be in a stock terminal.</p>
<p>Small trickles elsewhere:
<strong><a href="https://github.com/Shells-com/linux-scripts" rel="noopener noreferrer" target="_blank">Shells-com/linux-scripts</a></strong>
(5 commits),
<strong><a href="https://github.com/AzusaOS/azusa-opensource-recipes" rel="noopener noreferrer" target="_blank">AzusaOS/azusa-opensource-recipes</a></strong>
(1), and
<strong><a href="https://github.com/KarpelesLab/rest" rel="noopener noreferrer" target="_blank">rest</a></strong> (1). Nothing to write
home about individually.</p>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: cterm — a pure-Rust terminal for AI coding</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w03.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w03.html</id>
    <published>2026-01-18T00:00:00Z</published>
    <updated>2026-01-18T00:00:00Z</updated>
    <summary>Launching cterm: a native-UI VT100 terminal emulator in pure Rust, tuned for running AI coding assistants like Claude Code.</summary>
    <content type="html"><![CDATA[<p>Week of January 12–18. One major new repo, and continued small work
on older ones.</p>
<h2>cterm</h2>
<p><strong><a href="https://github.com/KarpelesLab/cterm" rel="noopener noreferrer" target="_blank">cterm</a></strong> — a new terminal
emulator, seeded on the 13th, 74 commits in five days. It's a
terminal emulator built for Claude users. Pure Rust with
platform-native UI (AppKit + CoreGraphics on macOS, GTK4 on Linux,
Win32 on Windows), custom VT100/ANSI engine with 24-bit color,
proper wide / combining / emoji characters, regex-searchable
scrollback. Plenty of small features that make day-to-day life with
an AI coding assistant in a terminal a bit smoother. This week is
mostly the foundation — VT engine, buffer management, platform
shells.</p>
<h2>Also this week</h2>
<ul>
<li><strong><a href="https://github.com/Shells-com/shells-go" rel="noopener noreferrer" target="_blank">Shells-com/shells-go</a></strong>
  — 17 commits of maintenance on the Go Shells client.</li>
<li><strong><a href="https://github.com/KarpelesLab/static-opus" rel="noopener noreferrer" target="_blank">static-opus</a></strong> — 6
  commits statically linking libopus from Go.</li>
<li><strong><a href="https://github.com/KarpelesLab/tpl" rel="noopener noreferrer" target="_blank">tpl</a></strong> — 4 commits on the
  Go template engine.</li>
<li><strong><a href="https://github.com/Shells-com/spice" rel="noopener noreferrer" target="_blank">Shells-com/spice</a></strong> — 4
  commits on the pure-Go Spice protocol implementation.</li>
<li><strong><a href="https://github.com/KarpelesLab/goclip" rel="noopener noreferrer" target="_blank">goclip</a></strong> — 4 commits
  on the Go clipboard helpers.</li>
</ul>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: algoc — write the algorithm once</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w02.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w02.html</id>
    <published>2026-01-11T00:00:00Z</published>
    <updated>2026-01-11T00:00:00Z</updated>
    <summary>Launching algoc: a DSL + transpiler that emits memory-safe implementations of the same algorithm in multiple target languages.</summary>
    <content type="html"><![CDATA[<p>Week of January 5–11. Thin week for commits (37 total), one meaningful
launch.</p>
<h2>algoc</h2>
<p><strong><a href="https://github.com/KarpelesLab/algoc" rel="noopener noreferrer" target="_blank">algoc</a></strong> — 26 commits on the
repo's first full week. The goal is simple to state: make some
algorithms available cross-platform. Write the algorithm once in a
DSL, get implementations in multiple target languages. It's still
early — this is the kind of project that takes time, because the DSL,
the type system, and the target-language back-ends all have to grow
together before any of it is trustworthy. Worth watching, not worth
depending on yet.</p>
<h2>Also this week</h2>
<ul>
<li><strong><a href="https://github.com/KarpelesLab/squashfs" rel="noopener noreferrer" target="_blank">squashfs</a></strong> — 4
  commits on the pure-Go read/write implementation.</li>
<li><strong><a href="https://github.com/KarpelesLab/goro" rel="noopener noreferrer" target="_blank">goro</a></strong> — 3 incremental
  commits on the PHP-in-Go runtime.</li>
<li>Minor work on
  <strong><a href="https://github.com/KarpelesLab/swiftrest" rel="noopener noreferrer" target="_blank">swiftrest</a></strong>,
  <strong><a href="https://github.com/KarpelesLab/qemuctl" rel="noopener noreferrer" target="_blank">qemuctl</a></strong>, and
  <strong><a href="https://github.com/KarpelesLab/pobj" rel="noopener noreferrer" target="_blank">pobj</a></strong>.</li>
</ul>]]></content>
  </entry>
  <entry>
    <title>Weekly open source: echeck, and Swift around the edges</title>
    <link rel="alternate" type="text/html" href="https://www.bfe001.net/blog/weekly-2026-w01.html" />
    <id>https://www.bfe001.net/blog/weekly-2026-w01.html</id>
    <published>2026-01-04T00:00:00Z</published>
    <updated>2026-01-04T00:00:00Z</updated>
    <summary>A quiet new-year week: finishing the SGX certificate checker and opening up Swift ports of the Bottle and REST client libraries.</summary>
    <content type="html"><![CDATA[<p>Week of December 29 – January 4. Quiet holiday stretch, but the year
opens with a cluster of smaller things landing.</p>
<p><strong><a href="https://github.com/KarpelesLab/echeck" rel="noopener noreferrer" target="_blank">echeck</a></strong> — 42 commits
polishing the SGX certificate checker: a utility and library that
extracts Intel SGX quotes embedded in X.509 certificates (OID
<code>1.3.6.1.4.1.311.105.1</code>), parses them, and does full chain-of-trust
verification. Ships as both a C library with CLI and a Go library.</p>
<p><strong>Swift ports for the KLB stack.</strong> Two new Swift repos opened this
week: <strong><a href="https://github.com/KarpelesLab/swiftrest" rel="noopener noreferrer" target="_blank">swiftrest</a></strong> (Swift
REST client using async/await actors, OAuth2 + Ed25519 API-key
signing, chunked uploads) and <strong><a href="https://github.com/BottleFmt/swiftbottle" rel="noopener noreferrer" target="_blank">swiftbottle</a></strong>
(Swift implementation of the <a href="https://github.com/BottleFmt/bottle-id" rel="noopener noreferrer" target="_blank">Bottle</a>
secure message container — multi-recipient AES-256-GCM, multi-signer
Ed25519 / ECDSA / RSA, CBOR + JSON, interoperable with
<a href="https://github.com/BottleFmt/gobottle" rel="noopener noreferrer" target="_blank">gobottle</a> and pybottle).</p>
<p><strong><a href="https://github.com/KarpelesLab/qemuctl" rel="noopener noreferrer" target="_blank">qemuctl</a></strong> — a new Go
library for managing QEMU processes, seeded on the 29th.</p>
<p>Smaller pokes on
<strong><a href="https://github.com/KarpelesLab/klbfw" rel="noopener noreferrer" target="_blank">klbfw</a></strong>,
<strong><a href="https://github.com/KarpelesLab/atonline-flutter" rel="noopener noreferrer" target="_blank">atonline-flutter</a></strong>,
and <strong><a href="https://github.com/BottleFmt/gobottle" rel="noopener noreferrer" target="_blank">gobottle</a></strong>.</p>]]></content>
  </entry>
</feed>
