Simon Willison’s Weblog

Subscribe
Atom feed

Elsewhere

Filters: Sorted by date

Release datasette-public 0.4a0 — Make selected Datasette databases and tables visible to the public
Research memchr-python-wrapper — pymemchr is a Python library that provides ultra-fast byte and substring search functions by binding to the memchr Rust crate, leveraging SIMD optimizations for superior performance. Using PyO3 and Maturin for cross-language integration, pymemchr offers efficient routines for finding single bytes, searching for multiple bytes, and locating substring patterns, both forwards and backwards, with highly competitive speedup over native Python methods.
Research memchr-c-wrapper — Offering a pure C reimplementation of the Rust-based pymemchr, pymemchr-c delivers high-performance byte and substring search functions to Python with extensive SIMD (SSE2/AVX2/NEON) optimizations and runtime CPU feature detection. Its unique "Packed Pair" substring search algorithm enables the C version to outperform both Python's built-in methods (up to 28x faster) and the original Rust extension (up to 1.5x faster for substring operations), all while removing the need for a Rust toolchain.
Research sqlite-wasm-library — Seeking to enable Python's SQLite interface with WebAssembly, the project developed a `sqlite3_wasm` library—a drop-in replacement for Python's standard `sqlite3` module. By compiling SQLite 3.45.3 to WASM with wasi-sdk and wrapping the resulting binary with a Python API, the solution delivers fully functional, in-memory, WASM-powered database operations using the wasmtime runtime.
Tool Red Annotation Extractor — # Red Annotation Extractor Documentation
Research sqlite-time-limit-extension — Designed as a Python C extension, the SQLite Time Limit Extension introduces a function, execute_with_timeout, enabling SQL queries against a SQLite database to be terminated if they exceed a specified millisecond threshold. This is achieved using SQLite's progress handler, ensuring that long-running queries do not block application responsiveness. Usage is simple via standard import, and rigorous tests are provided with pytest to validate both normal operation and timeouts.
Tool Hyperviz — Create real-time audio-reactive visualizations with eight distinct modes including plasma, particles, tunnel effects, kaleidoscope patterns, Matrix rain, terrain, fire, and starfield animations. The visualizer captures frequency data from your microphone and responds dynamically to bass, mid, and high frequencies, with beat detection triggering visual flashes and intensity changes.
Release claude-code-transcripts 0.5 — Tools for publishing transcripts for Claude Code sessions
TIL Downloading archived Git repositories from archive.softwareheritage.org — Last February I [blogged about](https://simonwillison.net/2025/Feb/7/sqlite-s3vfs/) a neat script called `sqlite-s3vfs` which was released as MIT licensed open source by the UK government's Department for Business and Trade.
Tool Software Heritage Repository Retriever — Download archived Git repositories from Software Heritage, the universal archive of software source code. This tool queries the Software Heritage GraphQL API to locate repositories and creates downloadable bare Git archives through the vault service. Enter a repository URL to retrieve the latest snapshot and access detailed archive information including the Software Heritage identifier (SWHID) for future reference.
Release datasette-turnstile 0.1a0 — Configurable CAPTCHAs for Datasette paths using Cloudflare Turnstile
Release shot-scraper 1.9 — A command-line utility for taking automated screenshots of websites
Release micro-javascript 0.1a3 — Python port of MicroQuickJS
Release claude-code-transcripts 0.4 — Tools for publishing transcripts for Claude Code sessions
Tool Cooking Timer — # Cooking Timer Documentation
Research http-range-wheel-metadata — Leveraging ZIP file structure and HTTP range requests, tools like uv efficiently extract wheel metadata for Python packages without downloading entire archives. By fetching just the last 16KB of the wheel (central directory and EOCD), parsing for the METADATA file offset, and then requesting exactly its byte range, uv and the accompanying Python prototype routinely reduce bandwidth usage by over 70%.
Release claude-code-transcripts 0.3 — Tools for publishing transcripts for Claude Code sessions
Tool PG&E Outage Map - Half Moon Bay Area — Track power outages affecting the Half Moon Bay area with this interactive map displaying real-time PG&E outage data within a 15-mile radius. The application visualizes outage locations as point markers and affected areas as polygons, while displaying key statistics including the number of outages, impacted customers, and affected regions. Custom markers can be added by providing a URL parameter, and the map automatically refreshes every five minutes to ensure current outage information.
Release micro-javascript 0.1a2 — Python port of MicroQuickJS
Release micro-javascript 0.1a1 — Python port of MicroQuickJS
Release micro-javascript 0.1a0 — Python port of MicroQuickJS
Release claude-code-transcripts 0.2 — Tools for publishing transcripts for Claude Code sessions
Research vibium-python-client — Examining the Vibium browser automation project, this investigation developed a Python client library that interoperates with Vibium’s Go-powered "clicker" binary and existing Node.js tools. The Python client exposes both synchronous and asynchronous APIs, replicating advanced browser automation features such as auto-waiting, visibility checks, and custom commands (e.g., `vibium:find`, `vibium:click`) via WebDriver BiDi over WebSocket.
Release claude-code-transcripts 0.1 — Tools for publishing transcripts for Claude Code sessions
Research microquickjs-in-redis — Expanding Redis’s scripting capabilities, the Redis JavaScript Module enables users to execute JavaScript scripts in Redis through the fast, embedded mquickjs engine, paralleling the Lua scripting features but with a JavaScript syntax. This module introduces commands like `JS.EVAL`, `JS.LOAD`, and `JS.CALL`, supporting script execution, caching, and invocation by SHA1 hash, along with native integrations for running Redis commands, logging, and error handling within scripts.
Research debug-failed-fix — Debugging investigation into why commit 0dcfad4's fix for cog code rendering didn't work. The fix correctly used string concatenation to avoid `-->` in Python strings, but the explanatory comment itself contained the literal `-->` sequence, which closed the HTML comment early. Solution: rewrote the comment to avoid the problematic character sequence.
Tool MicroQuickJS Code Executor — Execute JavaScript code in a lightweight MicroQuickJS sandbox environment running via WebAssembly, with results displayed directly on the page. The sandbox supports ES5-like JavaScript features and automatically saves your code in the URL for easy sharing and recovery. Choose between optimized and original WebAssembly versions, try built-in examples, and use Ctrl+Enter to quickly run your code.
Release llm-gemini 0.28.2 — LLM plugin to access Google's Gemini family of models
Tool llm-lib demo — # Documentation

Beats

Years

Tags