Skip to content
CAI
Software that uses CAICheck a score

grosser/parallel

65.0

Adequate · 28 September 2026

739

lines of production code

Ruby

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

The Parallel library is a Ruby utility for executing tasks concurrently using threads and processes. It provides core features for managing worker pools, handling job distribution, and monitoring progress, while ensuring safe data marshaling and exception handling across isolated execution contexts. The system includes security measures to prevent pipe injection attacks through HMAC-protected serialization and supports clean termination via user interrupts.

Features

Initial release of the Parallel library

Introduces the Parallel library, providing utilities for concurrent execution via threads and processes. The implementation includes core classes for managing workers, handling job factories, and wrapping exceptions (including undumpable ones) for safe marshaling. It supports various input types, offers progress monitoring, and handles user interrupts (Ctrl+C) to cleanly terminate parallel tasks.

lib · high confidence

Removals

Removal of legacy parallel spec execution task

The \tasks/parallel\_specs.rake\ file has been deleted, removing the legacy \spec:parallel\ rake task that previously executed RSpec tests across multiple processes by forking and managing separate test environment files. This change eliminates the old parallelization implementation, which is superseded by newer parallel task structures and refactoring efforts within the \tasks\ directory.

tasks · high confidence

Security

Add HMAC-protected serialization to prevent pipe injection

The library now includes a pluggable serialization system that allows workers to use an HMAC-SHA256 wrapper around the standard Marshal serializer. This change introduces a security mechanism to prevent pipe injection attacks, where a same-UID attacker could otherwise inject malicious Marshal gadgets via worker pipes. The new \Parallel::Serializer::Hmac\ class frames data with a length-prefixed MAC keyed on a per-worker secret, ensuring data integrity and authenticity. Additionally, the library version has been updated to 2.2.0.

lib/parallel · high confidence

Test coverage

Added tests for Parallel::Serializer security and reliability; Expanded integration and regression test coverage for Parallel; Initial RSpec test suite for Parallel library.

Dependencies

Initial release of the parallel gem v2.2.0 with Ruby 3.3+ requirement

This change introduces the initial gemspec, Gemfile, and lockfile for the parallel gem, establishing version 2.2.0. It sets a minimum Ruby version requirement of 3.3 and defines development dependencies including RSpec 3.13, Rubocop 1.86, and ActiveRecord 8.1.3, alongside runtime dependencies like ruby-progressbar and database adapters (mysql2, sqlite3).

(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 65 → 65 (+0.2)
  • Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 95 → 95 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 59 → 59 (-0.1)
  • Readiness 62 → 62 (+0.0)
  • Security 88 → 91 (+2.9)

Resolved (2)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)

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

Survey your own repository

grosser/parallel 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 28 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 582ae13d237ec4994f6895388b7933f832118bb7 — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.