Skip to content
CAI
Software that uses CAICheck a score

szabodanika/microbin

46.2

Weak · 30 September 2026

3.6k

lines of production code

Rust

with JavaScript

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

MicroBin is a self-hosted paste bin application that allows users to upload and manage text snippets and multi-file attachments with configurable expiration and privacy settings. It supports both JSON file and SQLite storage backends, offering client-side AES encryption for sensitive data and syntax highlighting for code. The system includes an administrative dashboard for managing content and a CLI interface for flexible configuration, all packaged with Docker support for easy deployment.

Features

Added client-side AES encryption and multi-file attachment support

The application now supports uploading multiple files simultaneously, with each file displayed in a new card component that handles previews for images and videos. For encrypted uploads, the system integrates a client-side AES encryption library (aes.js) to secure data before transmission, while also including syntax highlighting assets (highlight.js) for code display.

templates/assets · high confidence

Admin panel and archive download endpoints introduced

The application now includes an admin dashboard at /admin for managing pastas, checking for updates, and viewing system status, as well as an /archive/{id} endpoint that allows users to download a single pasta and its attachments as a ZIP file. These new endpoints are supported by dedicated authentication pages for admin access (/auth\_admin) and for accessing private or encrypted pastas (/auth/{id}), ensuring that sensitive content and administrative functions are properly protected.

src/endpoints · high confidence

Initial release of MicroBin with Docker support and configuration defaults

This change introduces the initial version of MicroBin, a self-hosted paste bin application, including a Dockerfile that builds a distroless image, a docker-compose setup, and a comprehensive .env configuration file defining default settings for authentication, data storage, and UI behavior.

(repo-wide) · high confidence

Introduction of new utility modules for ID generation, authentication, and database abstraction

This change introduces a suite of new utility modules in src/util that underpin several new capabilities. The new animalnumbers.rs and hashids.rs modules provide ID generation strategies (converting numbers to animal-name strings and hash IDs, respectively), while auth.rs implements basic authentication validation and password extraction from multipart forms. The db.rs module acts as an abstraction layer that routes database operations to either the new db\_json.rs (JSON file storage) or db\_sqlite.rs (SQLite storage) backends, with db\_sqlite.rs also handling schema migrations such as adding the attachments column. Additionally, http\_client.rs configures HTTP clients with optional RustCrypto TLS support, misc.rs adds file encryption/decryption and garbage collection logic, syntaxhighlighter.rs enables code highlighting, telemetry.rs starts a background thread for usage reporting, and version.rs derives the application version from build metadata.

src/util · high confidence

Architecture

Major architecture overhaul with configurable CLI and multi-file support

The application has been refactored from a monolithic structure into a modular architecture, introducing a comprehensive CLI argument system (src/args.rs) that allows users to configure authentication, binding addresses, data directories, and feature flags via environment variables or command-line options. This change replaces the previous hardcoded defaults and animal-based ID generation with a new hash ID system (configurable via MICROBIN\_HASH\_IDS) and supports multi-file uploads with attachment tracking. The core data model (src/pasta.rs) has been expanded to include file metadata, privacy settings, and encryption flags, while the routing logic (src/main.rs) has been split into dedicated endpoint modules for better maintainability.

src · high confidence

Behavioural changes

Major UI overhaul and feature expansion in templates

The template layer has been significantly restructured to support a more robust user experience. The legacy 'pasta' terminology and basic list views have been replaced with 'upload' support, including multi-file attachments, gallery/list views, and client-side decryption for encrypted uploads. New administrative and authentication interfaces (admin.html, auth\_admin.html, auth\_upload.html) provide better management and password protection flows. The upload form (index.html) now exposes granular controls for expiration, burn-after-read limits, and syntax highlighting, while the header and footer templates support custom titles, logos, and CSS. Additionally, new utility pages like guide.html and error.html have been added to improve documentation and error handling.

templates · high confidence

Dependencies

Microbin upgraded to version 2.1.4 with expanded dependencies and TLS options

The project manifest and lockfile have been updated to version 2.1.4, introducing a significant expansion of dependencies including \actix-multipart\ for file handling, \clap\ for CLI configuration, \rusqlite\ for database support, and \syntect\ for syntax highlighting. The build configuration now supports a \no-c-deps\ feature that switches TLS handling to \rustls\ (via \rustls-rustcrypto\ and \webpki-roots\) and uses a pure-Rust syntax engine, facilitating easier cross-compilation, while the default build retains OpenSSL and Zstd compression support.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 44 → 46 (+2.2)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 72 → 73 (+1.8)
  • Architecture 100 → 79 (-21.0)
  • Maturity 47 → 47 (+0.0)
  • Readiness 41 → 49 (+8.2)
  • Security 59 → 69 (+10.1)
  • Accessibility 35 → 35 (+0.0)
  • Performance 100 (new)

Resolved (4)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • No tests found
  • Off-boarding risk: anonymized user #1

New (17)

  • Documentation: no project overview (README.md)
  • Low cohesion: Pasta (LCOM4 5) (src/pasta.rs)
  • Medium vulnerability: RUSTSEC-2026-0285 (Cargo.lock)
  • Off-boarding risk: anonymized user #1
  • Outdated: actix-web
  • Outdated: actix-web-httpauth
  • Outdated: bytes
  • Outdated: chrono
  • Outdated: futures
  • Outdated: html-escape
  • Outdated: log
  • Outdated: openssl
  • Outdated: rust-embed
  • Outdated: rustls
  • Outdated: serde
  • Outdated: serde_json
  • aes.AES._prepare (cognitive 22) (templates/assets/aes.js)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

szabodanika/microbin was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 5268924116f87139dc83459893457d8f02ad1149 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.