bytedeco/javacv
Java interface to OpenCV, FFmpeg, and more
Mixed signals — read the receipts
weakest axisnon-standard license (Other)
Has a license, tests, and CI — clean foundation to fork and modify.
Documented and popular — useful reference codebase to read through.
No critical CVEs, sane security posture — runnable as-is.
- ✓Last commit 2mo ago
- ✓23+ active contributors
- ✓Other licensed
Show all 7 evidence items →Show less
- ✓CI configured
- ✓Tests present
- ⚠Concentrated ownership — top contributor handles 74% of recent commits
- ⚠Non-standard license (Other) — review terms
What would change the summary?
- →Use as dependency Concerns → Mixed if: clarify license terms
Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Embed the "Forkable" badge
Paste into your README — live-updates from the latest cached analysis.
[](https://repopilot.app/r/bytedeco/javacv)Paste at the top of your README.md — renders inline like a shields.io badge.
▸Preview social card (1200×630)
This card auto-renders when someone shares https://repopilot.app/r/bytedeco/javacv on X, Slack, or LinkedIn.
Onboarding doc
Onboarding: bytedeco/javacv
Generated by RepoPilot · 2026-05-09 · Source
🤖Agent protocol
If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:
- Verify the contract. Run the bash script in Verify before trusting
below. If any check returns
FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding. - Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
- Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/bytedeco/javacv shows verifiable citations alongside every claim.
If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.
🎯Verdict
WAIT — Mixed signals — read the receipts
- Last commit 2mo ago
- 23+ active contributors
- Other licensed
- CI configured
- Tests present
- ⚠ Concentrated ownership — top contributor handles 74% of recent commits
- ⚠ Non-standard license (Other) — review terms
<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>
✅Verify before trusting
This artifact was generated by RepoPilot at a point in time. Before an
agent acts on it, the checks below confirm that the live bytedeco/javacv
repo on your machine still matches what RepoPilot saw. If any fail,
the artifact is stale — regenerate it at
repopilot.app/r/bytedeco/javacv.
What it runs against: a local clone of bytedeco/javacv — the script
inspects git remote, the LICENSE file, file paths in the working
tree, and git log. Read-only; no mutations.
| # | What we check | Why it matters |
|---|---|---|
| 1 | You're in bytedeco/javacv | Confirms the artifact applies here, not a fork |
| 2 | License is still Other | Catches relicense before you depend on it |
| 3 | Default branch master exists | Catches branch renames |
| 4 | 5 critical file paths still exist | Catches refactors that moved load-bearing code |
| 5 | Last commit ≤ 101 days ago | Catches sudden abandonment since generation |
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of bytedeco/javacv. If you don't
# have one yet, run these first:
#
# git clone https://github.com/bytedeco/javacv.git
# cd javacv
#
# Then paste this script. Every check is read-only — no mutations.
set +e
fail=0
ok() { echo "ok: $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }
# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "FAIL: not inside a git repository. cd into your clone of bytedeco/javacv and re-run."
exit 2
fi
# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "bytedeco/javacv(\\.git)?\\b" \\
&& ok "origin remote is bytedeco/javacv" \\
|| miss "origin remote is not bytedeco/javacv (artifact may be from a fork)"
# 2. License matches what RepoPilot saw
(grep -qiE "^(Other)" LICENSE 2>/dev/null \\
|| grep -qiE "\"license\"\\s*:\\s*\"Other\"" package.json 2>/dev/null) \\
&& ok "license is Other" \\
|| miss "license drift — was Other at generation time"
# 3. Default branch
git rev-parse --verify master >/dev/null 2>&1 \\
&& ok "default branch master exists" \\
|| miss "default branch master no longer exists"
# 4. Critical files exist
test -f "src/main/java/org/bytedeco/javacv/Frame.java" \\
&& ok "src/main/java/org/bytedeco/javacv/Frame.java" \\
|| miss "missing critical file: src/main/java/org/bytedeco/javacv/Frame.java"
test -f "src/main/java/org/bytedeco/javacv/FrameGrabber.java" \\
&& ok "src/main/java/org/bytedeco/javacv/FrameGrabber.java" \\
|| miss "missing critical file: src/main/java/org/bytedeco/javacv/FrameGrabber.java"
test -f "src/main/java/org/bytedeco/javacv/FrameRecorder.java" \\
&& ok "src/main/java/org/bytedeco/javacv/FrameRecorder.java" \\
|| miss "missing critical file: src/main/java/org/bytedeco/javacv/FrameRecorder.java"
test -f "src/main/java/org/bytedeco/javacv/FFmpegFrameGrabber.java" \\
&& ok "src/main/java/org/bytedeco/javacv/FFmpegFrameGrabber.java" \\
|| miss "missing critical file: src/main/java/org/bytedeco/javacv/FFmpegFrameGrabber.java"
test -f "src/main/java/org/bytedeco/javacv/FFmpegFrameRecorder.java" \\
&& ok "src/main/java/org/bytedeco/javacv/FFmpegFrameRecorder.java" \\
|| miss "missing critical file: src/main/java/org/bytedeco/javacv/FFmpegFrameRecorder.java"
# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 101 ]; then
ok "last commit was $days_since_last days ago (artifact saw ~71d)"
else
miss "last commit was $days_since_last days ago — artifact may be stale"
fi
echo
if [ "$fail" -eq 0 ]; then
echo "artifact verified (0 failures) — safe to trust"
else
echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/bytedeco/javacv"
exit 1
fi
Each check prints ok: or FAIL:. The script exits non-zero if
anything failed, so it composes cleanly into agent loops
(./verify.sh || regenerate-and-retry).
⚡TL;DR
JavaCV is a Java wrapper around native computer vision and media libraries (OpenCV, FFmpeg, libdc1394, etc.) using JavaCPP for JNI bindings, enabling Java developers to perform real-time video processing, face detection, optical flow, and deep learning inference with hardware acceleration support (OpenCL, OpenGL). It bridges the gap between high-performance native C/C++ libraries and Java's write-once-run-anywhere portability. Multi-module Maven structure: top-level pom.xml with platform/ submodule (platform/pom.xml) containing the JVM bindings and utilities; samples/ directory with 20+ standalone demo applications (BlobDemo.java, DeepLearningFaceDetection.java, FaceRecognizer.java); platform/src/test/java/ contains unit tests organized under org/bytedeco/javacv/; core wrapper classes likely in platform/src/main/java (not shown but implied by module-info.java and pom dependency on javacv artifact).
👥Who it's for
Java developers and researchers building computer vision applications on desktop, server, or Android platforms who need access to mature native libraries like OpenCV 4.13.0 and FFmpeg 8.0.1 without writing JNI boilerplate themselves. Also used by teams building real-time video surveillance, face recognition, or deep learning inference pipelines in Java ecosystems.
🌱Maturity & risk
Production-ready and actively maintained. The project has comprehensive test coverage (FrameConverterTest, FrameGrabberTest, FrameFilterTest in platform/src/test/java/org/bytedeco/javacv/), active CI/CD via GitHub Actions (.github/workflows/javacv.yml), Maven Central distribution, and a v1.5.14-SNAPSHOT development version with regular dependency updates (OpenCV 4.13.0, FFmpeg 8.0.1). Multiple sample applications demonstrate real-world usage patterns.
Moderate risk: heavy JNI dependency chain (javacpp-presets parent at 1.5.14-SNAPSHOT, OpenCV/FFmpeg platform artifacts, libfreenect, flycapture) means native library availability varies by platform/OS; no clear major version or LTS policy visible; FFmpeg licensing (LGPL/GPL variants) may impact closed-source distributions. Single organization (bytedeco) maintains both this and the critical JavaCPP Presets dependency, creating a single point of failure.
Active areas of work
No recent commit data visible in the provided snapshot, but the pom.xml shows active development with OpenCV 4.13.0 (recent), FFmpeg 8.0.1, and a -SNAPSHOT version suffix indicating ongoing integration work. GitHub Actions workflow (javacv.yml) is configured for automated testing, suggesting CI/CD is operational.
🚀Get running
git clone https://github.com/bytedeco/javacv.git && cd javacv && mvn clean install -DskipTests (to build locally, or mvn test to run the test suite in platform/src/test/java/). Dependencies will auto-download from Maven Central; ensure Java 9+ is installed (module-info.java present).
Daily commands: No traditional 'dev server'; this is a library. Run tests: mvn test -pl platform (runs FrameConverterTest, FrameGrabberTest, etc.). Run a sample: javac -cp target/javacv-platform--shaded.jar samples/BlobDemo.java && java -cp .:target/javacv-platform--shaded.jar BlobDemo. For video capture tests, native webcam/ffmpeg must be available on your OS.
🗺️Map of the codebase
src/main/java/org/bytedeco/javacv/Frame.java— Core data structure representing video/image frames; all converters and grabbers depend on this abstraction.src/main/java/org/bytedeco/javacv/FrameGrabber.java— Base interface for all frame acquisition (camera, video file, IP stream); essential for understanding input pipeline.src/main/java/org/bytedeco/javacv/FrameRecorder.java— Base interface for all frame output/encoding; required for understanding recording and video writing.src/main/java/org/bytedeco/javacv/FFmpegFrameGrabber.java— Primary implementation of frame grabbing via FFmpeg; handles video decoding and input format negotiation.src/main/java/org/bytedeco/javacv/FFmpegFrameRecorder.java— Primary implementation of frame recording via FFmpeg; handles video encoding and output container format.src/main/java/org/bytedeco/javacv/FrameConverter.java— Abstraction for converting Frame objects to/from platform-specific image formats (Android, OpenCV, BufferedImage).pom.xml— Maven build configuration defining dependencies on JavaCPP presets for OpenCV, FFmpeg, and other native libraries.
🛠️How to make changes
Add a New Hardware Frame Grabber (e.g., USB camera via custom SDK)
- Create a new class extending FrameGrabber.java (
src/main/java/org/bytedeco/javacv/FrameGrabber.java) - Implement required methods: start(), grab(), stop(), setFormat(), getFormat(), etc. (
[NewFrameGrabber].java (new file in src/main/java/org/bytedeco/javacv/)) - Ensure Frame objects are populated with correct pixel data, timestamp, and imageWidth/imageHeight (
src/main/java/org/bytedeco/javacv/Frame.java) - Register the new grabber in getFrameGrabber() static factory if desired (implementation-specific) (
[NewFrameGrabber].java) - Add a test case in FrameGrabberTest.java to verify acquisition and frame properties (
platform/src/test/java/org/bytedeco/javacv/FrameGrabberTest.java)
Add a New Image Processing Filter (e.g., custom OpenCV operation)
- Create a new class extending FrameFilter.java or directly implementing the interface (
src/main/java/org/bytedeco/javacv/FrameFilter.java) - Implement push(Frame) or pull() to transform frames, converting Frame → Mat if needed, applying OpenCV ops, converting back (
[NewFrameFilter].java (new file in src/main/java/org/bytedeco/javacv/)) - Optionally use FrameConverter to handle Mat ↔ Frame conversion (
src/main/java/org/bytedeco/javacv/FrameConverter.java) - Add integration test in FrameFilterTest.java (
platform/src/test/java/org/bytedeco/javacv/FrameFilterTest.java)
Add Support for a New Output Format (e.g., RTMP streaming, custom codec)
- Create a new class extending FrameRecorder.java (
src/main/java/org/bytedeco/javacv/FrameRecorder.java) - Implement record(Frame), stop(), setVideoCodec(), setAudioCodec(), etc. (
[NewFrameRecorder].java (new file in src/main/java/org/bytedeco/javacv/)) - For FFmpeg-based output, configure output format/codec using org.bytedeco.ffmpeg native bindings (
[NewFrameRecorder].java) - Test frame writing and output file/stream validity (
platform/src/test/java (new test file))
Add a New Platform-Specific Frame Converter (e.g., for Vulkan VkImage)
- Create a new class extending FrameConverter<T> where T is the target format (e.g., VkImage wrapper) (
src)
🪤Traps & gotchas
Native library path resolution: FFmpeg and OpenCV natives must be on the system library path or loaded via javacpp-platform JAR containing prebuilt binaries for your OS (Windows/Linux/macOS); mismatched architectures (x86_64 vs ARM) will fail silently at runtime. Frame lifetime management: FrameGrabber/Frame objects hold native pointers; must be explicitly closed() to avoid memory leaks. Platform-specific video capture: some samples (FrameGrabberTest.java) require active camera hardware; will skip silently if missing. Maven shade/assembly: samples/ are standalone; platform/ module produces shaded JAR (see assembly/bin.xml, src.xml) which differs from regular JAR.
💡Concepts to learn
- JNI (Java Native Interface) and FFI (Foreign Function Interface) — JavaCV's entire architecture is built on JNI to call native C/C++ functions; understanding how javacpp-presets auto-generates JNI bindings is essential to grasping why javacv exists and how to extend it.
- Frame abstraction and zero-copy conversion — JavaCV's FrameConverter class enables zero-copy conversion between native Mat/IplImage (OpenCV) and Java BufferedImage; this is critical for performance in real-time video pipelines and unique to javacv's design.
- Platform-specific native artifact selection — javacpp-platform Maven dependencies (opencv-platform, ffmpeg-platform) auto-select natives for your OS/arch via Maven classifiers; misunderstanding this causes 'library not found' errors that seem random across teams.
- Memory-mapped I/O and native pointer lifecycle management — Frame and FrameGrabber objects hold memory-mapped pointers to native heap; unlike Java GC, these must be explicitly released via close() to prevent native memory leaks that don't show in Java heap profilers.
- OpenGL/OpenCL hardware acceleration for image processing — JavaCV provides GLCanvasFrame and JavaCVCL variants for GPU-accelerated rendering and processing; understanding when to use CPU (CanvasFrame) vs GPU paths is critical for 4K/high-FPS applications.
- Codec abstraction and FFmpeg plugin architecture — FrameGrabber abstracts over multiple backends (FFmpeg, GStreamer, libdc1394 for video capture); different codec combinations require different ffmpeg builds, explaining why samples may fail on minimal systems.
- Parallel execution and work-stealing thread pools — JavaCV's Parallel class for multi-core image processing uses work-stealing under the hood; essential for scaling blob analysis and feature detection to 8+ core machines without manual thread management.
🔗Related repos
bytedeco/javacpp-presets— Parent repository containing the JavaCPP wrapper definitions for OpenCV, FFmpeg, and other native libraries; javacv depends entirely on these presets for JNI bindings.bytedeco/javacpp— Core bytecode generation and JNI/FFI bridge framework that powers JavaCPP Presets and enables javacv to wrap native C/C++ libraries without manual JNI code.opencv/opencv-python— Python bindings for OpenCV; javacv is the Java equivalent, making cross-language computer vision workflows possible (e.g., prototyping in Python, deploying in Java).NativeScript/NativeScript— Similar JNI wrapper approach for JavaScript/TypeScript; demonstrates parallel effort to bring native libraries to high-level VMs with simpler syntax than raw JNI.pytorch/pytorch— Deep learning framework with Java bindings (PyTorch Java API); often paired with javacv for end-to-end inference pipelines (video capture → neural network → result visualization).
🪄PR ideas
To work on one of these in Claude Code or Cursor, paste:
Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.
Add integration tests for FFmpeg streaming and timeout handling
The repo has a sample FFmpegStreamingTimeout.java but no corresponding unit test in platform/src/test/java/org/bytedeco/javacv/. Given that FFmpeg is a critical dependency (version 8.0.1), adding tests for streaming edge cases, timeout scenarios, and codec negotiation would prevent regressions and improve reliability for users relying on streaming features.
- [ ] Create
platform/src/test/java/org/bytedeco/javacv/FFmpegStreamingTest.javawith tests for timeout handling - [ ] Add tests for various codec scenarios and stream protocol edge cases (HTTP, RTSP, etc.)
- [ ] Verify tests run in CI by updating
.github/workflows/javacv.ymlto include streaming tests - [ ] Document any required test fixtures (sample streams or mocked endpoints) in test class comments
Add unit tests for FrameConverter with different media types and formats
FrameConverterTest.java exists but likely has minimal coverage. Given that FrameConverter is a core utility for converting between OpenCV Mat, BufferedImage, and video frames, adding comprehensive tests for different color spaces (RGB, BGR, YUV, etc.), image dimensions, and byte formats would catch conversion bugs early and improve code confidence.
- [ ] Expand
platform/src/test/java/org/bytedeco/javacv/FrameConverterTest.javawith parameterized tests for multiple color spaces - [ ] Add tests for edge cases: 1x1 images, very large frames, unusual aspect ratios
- [ ] Test bidirectional conversions (Mat→Frame→Mat, BufferedImage→Frame→BufferedImage) for consistency
- [ ] Add performance baseline tests to prevent regression in conversion speed
Add GitHub Actions workflow for cross-platform binary compatibility testing
The .github/workflows/javacv.yml workflow exists, but there's no explicit multi-platform testing (Linux, macOS, Windows). Since JavaCV wraps native libraries (OpenCV, FFmpeg) via JavaCPP with platform-specific binaries, adding a matrix build strategy testing on ubuntu-latest, macos-latest, and windows-latest would catch platform-specific failures early (e.g., library linking issues, path separators, codec availability).
- [ ] Update
.github/workflows/javacv.ymlto add a matrix strategy withos: [ubuntu-latest, macos-latest, windows-latest] - [ ] Add platform-specific dependency installation steps (apt for Linux, brew for macOS, choco for Windows)
- [ ] Run existing tests in
platform/src/test/java/on each platform to verify native library loading - [ ] Document any platform-specific setup requirements in
README.mdor a newDEVELOPMENT.mdfile
🌿Good first issues
- Add FrameGrabber error handling tests: platform/src/test/java/org/bytedeco/javacv/FrameGrabberTest.java only covers happy path; missing tests for invalid file paths, corrupted video headers, and codec mismatches—would improve robustness.
- Document platform-specific setup in README.md: native dependency paths differ on Windows (dll), Linux (so), macOS (dylib); samples fail silently if these aren't on LD_LIBRARY_PATH/DYLD_LIBRARY_PATH but the repo has no troubleshooting guide for platform setup.
- Add JavaDoc examples to core converter classes: FrameConverter, FrameFilter, and CanvasFrame are heavily used but lack concrete code-snippet documentation in their source; adding @example Javadoc tags with samples/FacePreview.java patterns would lower barrier to entry.
⭐Top contributors
Click to expand
Top contributors
- @saudet — 74 commits
- @anotherche — 3 commits
- @steeveen — 2 commits
- @Tengyyy — 2 commits
- @ben221199 — 1 commits
📝Recent commits
Click to expand
Recent commits
47b4003— * Compile classes withparametersbumping minimum requirements to Java SE 8 and Android 7.0 (issue bytedeco/javacpp-p (saudet)5e9c731— Upgrade versions of all Maven dependencies and plugins (saudet)1d00681— Update version in thepom.xmlfiles to 1.5.14-SNAPSHOT (saudet)e1bce0e— Release version 1.5.13 (saudet)3c65f93— * CallPointer.trimMemory()onFFmpegFrameGrabber/Filter/Recorderclose to reclaim system memory on Linux (issue #2 (saudet)8d8af6b— * Upgrade dependencies for OpenBLAS 0.3.31, OpenCV 4.13.0 (saudet)c2b3822— * Upgrade dependencies for Leptonica 1.87.0, Tesseract 5.5.2 (saudet)8e43b37— Upgrade GitHub Actions workflows to macOS 15 (saudet)2c3ddcd— * Upgrade dependencies for FFmpeg 8.0.1, Leptonica 1.86.0 (saudet)f987792— Add redeploy job to GitHub Actions workflow to deploy platform artifact (saudet)
🔒Security observations
JavaCV demonstrates moderate security posture with significant concerns centered on outdated native library dependencies. The project's heavy reliance on C/C++ native libraries (FFmpeg, OpenCV, and camera APIs) creates substantial security risks through JNI interfaces. Critical issues include outdated FFmpeg
- High · Outdated FFmpeg Dependency —
platform/pom.xml - ffmpeg-platform dependency (version 8.0.1-${javacpp.version}). The project depends on FFmpeg version 8.0.1, which may contain known security vulnerabilities. FFmpeg is a critical multimedia processing library with a history of vulnerabilities including buffer overflows and arbitrary code execution issues. Fix: Update FFmpeg to the latest stable version. Check FFmpeg security advisories and upgrade to the most recent patched version available. - High · Outdated OpenCV Dependency —
platform/pom.xml - opencv-platform dependency (version 4.13.0-${javacpp.version}). The project uses OpenCV version 4.13.0, which may have known vulnerabilities. OpenCV is used for computer vision and image processing with potential security implications for image parsing and processing. Fix: Verify the latest available version of OpenCV and evaluate upgrading if security patches are available. Review OpenCV security bulletins. - High · Outdated Build Dependencies —
platform/pom.xml - flycapture, libdc1394, libfreenect dependencies. Multiple native library dependencies (flycapture, libdc1394, libfreenect) are pinned to versions from 2013-2021 (e.g., 2.13.3.31-1.5.9, 2.2.6-1.5.9, 0.5.7-1.5.9). These are significantly outdated and likely contain known vulnerabilities. Fix: Review and update all native library dependencies to their latest versions. Establish a dependency update policy and vulnerability scanning process. - Medium · Snapshot Version in Use —
platform/pom.xml - parent version: 1.5.14-SNAPSHOT. The project uses a SNAPSHOT version (1.5.14-SNAPSHOT) which indicates development/unstable builds. Snapshot versions are not suitable for production use and may contain untested code. Fix: Use stable, released versions for production deployments. Only use SNAPSHOT versions in development environments with appropriate security controls. - Medium · Native Library Integration Risk —
platform/pom.xml - all native library dependencies. The project integrates multiple native C/C++ libraries (FFmpeg, OpenCV, libdc1394, libfreenect, flycapture) through JavaCPP. These create potential security risks through JNI interfaces including memory corruption, buffer overflows, and arbitrary code execution. Fix: Implement strict input validation before passing data to native libraries. Use memory-safe wrappers where possible. Keep all native dependencies patched. Monitor for native library CVEs regularly. - Medium · Missing Dependency Lock File —
Root directory / pom.xml. No lock file (pom.lock, dependency-lock.json, or similar) is evident in the provided structure. This allows transitive dependencies to vary between builds, potentially introducing vulnerabilities unknowingly. Fix: Implement Maven's dependency locking mechanism or use tools like maven-lockfile-plugin to ensure consistent dependency resolution across builds. - Low · No Security Policy or SECURITY.md —
Root directory. No SECURITY.md or security policy file is evident in the repository root. This makes it unclear how to report security issues responsibly. Fix: Create a SECURITY.md file following GitHub's recommended format, documenting how security vulnerabilities should be reported and the project's vulnerability disclosure process. - Low · Test Coverage for Security-Sensitive Code —
platform/src/test/java/org/bytedeco/javacv/. While frame grabber and converter tests exist, there's no evidence of security-focused testing for input validation, buffer overflows, or malformed media handling in the visible test files. Fix: Add security-focused unit and integration tests covering: malformed input handling, buffer boundary conditions, exception handling in native code, and resource cleanup.
LLM-derived; treat as a starting point, not a security audit.
👉Where to read next
- Open issues — current backlog
- Recent PRs — what's actively shipping
- Source on GitHub
Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.