74 posts in category technical

Architecture diagram: vigild components — Overlord, Service Actors, Check Actors, LogStore, Reaper, an HTTP API server with auth, and a TLS server — supervising service processes on a container host

vigil-rs: A Rust Service Supervisor for Containers

vigil-rs is a PID 1 / container init daemon written in Rust. It supervises multiple processes, runs health checks, fires HTTP(S) alerts on state transitions, and exposes a REST API over a Unix socket with native zombie-reaping and per-service stop signals.

vigil-rs: A Rust Service Supervisor for Containers
Blog post cover image

mergelog-rs: Rewriting a Year-2000 C Tool in Rust — and Making It 2.26× Faster

A Rust rewrite of mergelog 4.5, a C tool from 2000 that merges Apache log files chronologically. Six optimizations — a k-way heap merge, a hand-rolled CLF parser, String buffer reuse, mimalloc, 4 MiB read buffers with SIMD newline search, and zstd support — took the Rust binary from slower than the original to 2.26× faster.

mergelog-rs: Rewriting a Year-2000 C Tool in Rust — and Making It 2.26× Faster
Blog post cover image

AWFFull 4.0.0 — Modernising a 2008 Web Log Analyser

AWFFull 4.0.0 brings a long-overdue overhaul to a C-based web server log analyser forked from Webalizer: PCRE2 replaces EOL libpcre, libmaxminddb replaces the deprecated GeoIP .dat format, new ASN statistics show traffic by network operator, and optional Intel Hyperscan, mimalloc, and XXH3 deliver measurable performance gains on large logs. The release also adds a full GitLab CI/CD pipeline, .deb/.rpm packages, a multi-stage container image, updated browser and bot detection lists, and 100%-complete translations for 6 languages.

AWFFull 4.0.0 — Modernising a 2008 Web Log Analyser
Blog post cover image

AWFFull in the Cloud: Shipping Logs to Object Storage and Running in Containers

A practical guide to shipping web server access logs to AWS S3 or Azure Blob Storage using Fluent Bit, Vector, or Filebeat/Logstash — including persistent buffering, retry configuration, concurrent write safety, and log loss prevention. Covers running AWFFull as a stateless container against object storage logs and serving the generated reports as a static website.

AWFFull in the Cloud: Shipping Logs to Object Storage and Running in Containers
Rust programming language logo

loadgen-rs (Short): Results, Quick Start, and Tool Choice

A short version of the loadgen-rs article: what it does, benchmark highlights vs h2load, when to choose which tool, and how to start quickly in single-node and distributed mode.

loadgen-rs (Short): Results, Quick Start, and Tool Choice
Rust programming language logo

loadgen-rs: An HTTP Benchmark Client in Rust

How I built an HTTP benchmark client in Rust that supports HTTP/1.1, HTTP/2, and HTTP/3 — machine-readable output, distributed multi-node mode, Terraform/Ansible cloud deployment, and what CPU profiling revealed about the performance ceiling.

loadgen-rs: An HTTP Benchmark Client in Rust
Go programming language logo

cert-manager-webhook-libdns: One Webhook, Many DNS Providers

How cert-manager-webhook-libdns enables DNS-01 across many DNS providers via libdns, with practical operational improvements, compatibility automation, and a quick Kubernetes deployment path.

cert-manager-webhook-libdns: One Webhook, Many DNS Providers
Blog post cover image

Simple autotls setup with ferron

This article describes simple autotls setup with ferron webserver

Simple autotls setup with ferron
Blog post cover image

How to automate TLSA update

This article describes how to automatically update the TLSA record for DANE

How to automate TLSA update
Blog post cover image

How to Run Tor Arti as an HTTP Proxy or Behind a g3 HTTP Proxy

How to run Tor Arti as an HTTP proxy or behind a g3 HTTP proxy.

How to Run Tor Arti as an HTTP Proxy or Behind a g3 HTTP Proxy