Simon Willison

alchemy-utils 0.1a0

Release: alchemy-utils 0. 1a0 I've long pondered what a database agnostic version of my sqlite-utils Python library and CLI utility might look like.

arXiv AI
Sep 3

Zeta-Lite: A Concurrent, Branchable In-Browser SQL Database for Agentic Memory

Zeta‑Lite is a WebAssembly‑based in‑browser SQL database that brings concurrent, snapshot‑isolated transactions and copy‑on‑write database branching to the client side. It is a compact 2.87 MB gzipped build of the Zeta engine, offering a full PostgreSQL‑compatible feature set—including joins, CTEs, window functions, JSONB, full‑text search, HNSW vector search, and graph queries—while maintaining high read/write throughput across major browsers. The engine’s log‑centric asynchronous MVCC core enables overlapping transactions on a single thread and unique branching capabilities rarely seen even in server‑side databases. whyItMatters":"Zeta‑Lite’s concurrent, branchable design provides a lightweight, privacy‑preserving, and offline‑ready memory layer for in‑browser AI agents, enabling them to explore, test, and commit speculative changes efficiently."

By Gene Zhang
Simon Willison
Sep 11

Datasette 1.0a39 and 0.65.4 security releases

Datasette 1.0a39 and 0.65.4 are new security patch releases for the current alpha series and the stable 0.65.x family. The updates address security fixes that are important for public-facing Datasette instances, especially those that mix public and private tables. The patches were developed after an extensive audit using advanced AI models and collaborative review, and the process will be incorporated into future development work.

Simon Willison
Aug 24

llm-anthropic 0.27

The release of llm‑anthropic 0.27 updates the Anthropic plugin for LLM to be compatible with the newly released anthropic v1.0.0 Python library, which has switched from httpx to httpx2. This mirrors a similar change made by OpenAI in their v3.0.0 release two weeks prior. The update includes a migration guide and a pull request that ensures tests pass after upgrading to anthropic>=1.

Simon Willison
Aug 11

datasette-upload-dbs 0.5a0

Release: datasette-upload-dbs 0. 5a0 This plugin has been around for a while - it lets users upload a brand new SQLite database to a hosted Datasette instance, at which point that database will start being served by that instance.

Simon Willison
Sep 11

Don't sleep on wrapture

Graham Dumpleton’s new monkey‑patching library, wrapture, offers a versatile toolkit for Python developers, combining testing utilities, observability, and live tracing. It supports a wide range of use cases—from unit testing and call recording to phased behavior changes and zero‑code tracing via TOML configuration. The library also includes instrumentation for popular frameworks and services, OpenTelemetry export, and interactive JupyterLab workshops, making it a potentially indispensable Swiss‑Army‑knife for Python projects.

Simon Willison
Oct 12

Hello Python 3.15, goodbye 3.10, and now I can use 3.11

Python 3.15 introduces several new features, notably explicit lazy imports from PEP 810 that delay module loading until first use, and unpacking syntax in comprehensions (PEP 798) that simplifies flattening lists, sets, and dictionaries. The release also updates the profiling tools, renaming the tracing profiler to profiling.tracing and adding a new sampling profiler, profiling.sampling. These changes aim to improve performance and developer ergonomics in Python code.

Simon Willison
Aug 25

EVE Online: The Move to Python 3 Begins!

EVE Online is beginning its transition to Python 3, a move that will involve using the futurize script on 2.4 million lines of code and a manual review of about 20,000 differences between Python 2 and Python 3. The company has historically run on Stackless Python since 2003, with the last major upgrade in 2010 to Stackless Python 2.7. While the announcement does not detail how Stackless will be replaced, the team previously showcased a shift away from Stackless in their Carbon engine for EVE Frontier, leveraging the open‑source carbonengine/scheduler library.

Simon Willison
Aug 24

Your executable is a SQLite database

Farid Zakaria shows how to create a SQLite database file that can be executed directly as a Linux binary. By setting the SQLite file format’s 4‑byte application ID to "SELF" and arranging ELF components into SQLite tables, a small C interpreter can extract and run the necessary parts. The technique can be registered with the kernel via binfmt_misc so any file matching the pattern is automatically executed.

Simon Willison
Oct 10

Python 3.15.0 added to actions/python-versions

Python 3.15.0 has been added to the actions/python-versions repository. The author had been monitoring the repository for the release and used ChatGPT to automate the check. With the new version available, users can now include "3.15" in their GitHub Actions testing matrix to run tests against the latest Python release.