Skip to content
CAI
Software that uses CAICheck a score

AugustNagro/magnum

58.7

Adequate · 20 September 2026

4.4k

lines of production code

Scala

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Magnum is a Scala 3 ORM that provides a repository-based pattern for type-safe database access across multiple dialects including PostgreSQL, MySQL, and ClickHouse. It features built-in codecs for complex PostgreSQL types such as JSON, XML, arrays, and geometric data, alongside support for Scala enums. The system also offers a ZIO integration layer for managing database connections and transactions within ZIO effects.

Features

Added support for PostgreSQL JSON and XML data types

New \JsonBDbCodec\, \JsonDbCodec\, and \XmlDbCodec\ traits have been introduced to enable seamless mapping of PostgreSQL \jsonb\, \json\, and \xml\ columns to Scala types. These codecs handle the encoding and decoding of data using \PGobject\, allowing users to store and retrieve structured JSON and XML content directly through the database codec interface.

magnum-pg/src/main/scala/com/augustnagro/magnum/pg/json, magnum-pg/src/main/scala/com/augustnagro/magnum/pg/xml · high confidence

Initial release of the Magnum Scala ORM

This change introduces the Magnum library, a Scala 3 ORM that provides a repository pattern for database access. It includes core abstractions such as \DbCodec\ for type-safe JDBC mapping, \Frag\ for SQL interpolation, and \Repo\/\ImmutableRepo\ for data access. The library supports multiple database dialects via specific \DbType\ implementations (Clickhouse, H2, MySQL, Oracle, Postgres) and features streaming query support via \Query.iterator\, configurable logging via \SqlLogger\, and transaction management through \DbTx\. It also adds support for composite IDs, optional UUIDs, and various date/time types.

magnum/src/main · high confidence

Introduce ZIO-based database transactor

Added TransactorZIO, a new integration layer that enables database transactions and connections within ZIO effects. This component provides ZIO-compatible methods for connecting to the database and executing transactions, including proper resource management for connection acquisition and release, SQL logging support, and customizable connection configuration via ZIO layers.

magnum-zio/src/main · high confidence

PostgreSQL codec support for arrays and geometric types

The PostgreSQL module now includes built-in codecs for handling PostgreSQL-specific data types. Users can now map arrays of common types (including UUIDs) to Scala collections like Seq, List, Vector, and Buffer, as well as map PostgreSQL geometric types such as points, lines, boxes, circles, and polygons directly to their corresponding Java objects.

magnum-pg/src/main/scala/com/augustnagro/magnum/pg · high confidence

Support for mapping PostgreSQL and VARCHAR enums to Scala Enums

Added new codec implementations in the \magnum-pg/enums\ package to enable automatic mapping between Scala Enums and database values. \PgEnumDbCodec\ allows single-value mapping for PostgreSQL-specific enum types, while \PgEnumToScalaEnumSqlArrayCodec\ and \PgStringToScalaEnumSqlArrayCodec\ provide support for multi-dimensional arrays of PostgreSQL enums and standard SQL strings (VARCHAR/text) respectively. These changes allow users to seamlessly persist and retrieve Scala Enum cases using both native Postgres enum types and standard string columns.

magnum-pg/src/main/scala/com/augustnagro/magnum/pg/enums · high confidence

Removals

Removal of ImmutableRepo and RowConverter traits

The \ImmutableRepo\ and \RowConverter\ traits have been removed from the core library. This eliminates the previous mechanism for converting database \ResultSet\ rows into domain objects, meaning users can no longer rely on these specific interfaces for row mapping and must adopt the current data-access patterns provided by the library.

magnum-core · high confidence

Behavioural changes

Documentation and build configuration updates

The project documentation has been significantly expanded and restructured in the README, introducing new sections for ZIO integration, type-safe transaction management, and batch updates, while updating the installation instructions to require Scala 3.3.0 and version 1.3.0 of the library. Additionally, the .scalafmt configuration has been updated to version 3.8.4-RC3 with new formatting rules, and the .gitignore file has been extended to exclude database files and IDE-specific metadata.

(repo-wide) · high confidence

Test coverage

Added ZIO integration tests for PostgreSQL; Added comprehensive integration tests for PostgreSQL-specific data types and codecs; Added comprehensive test suite for ClickHouse and expanded cross-database coverage.

Dependencies

Upgrade to Scala 3.3.7 and update core dependencies

The project has upgraded its base Scala version from 3.2.2 to 3.3.7 and updated the major version to 2.0.0-SNAPSHOT. This change includes updates to key testing and database driver dependencies, specifically upgrading MUnit to 1.1.0, the PostgreSQL driver to 42.7.4, and adding support for MySQL 9.0.0, H2 2.3.232, Oracle ojdbc11 21.9.0.0, ClickHouse 0.6.0, and SQLite 3.46.1.3 via Testcontainers. The build structure has also been refactored to explicitly define \magnum\, \magnumPg\, and \magnumZio\ subprojects with updated dependency scopes.

(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

Baseline

  • First survey — no prior run to compare against. CAI 59.

Lenses

  • Code Health 96
  • Architecture 100
  • Maturity 55
  • Readiness 46
  • Security 75

Changes since last survey

  • 160 commits — 147 feature/other, 13 fixes

By area

  • (root) — 54 commits
  • magnum/src — 33 commits
  • src/main — 24 commits
  • (repo) — 22 commits
  • src/test — 9 commits
  • magnum-pg/src — 8 commits
  • magnum-zio/src — 4 commits
  • .github/workflows — 2 commits
  • magnum-core/src — 2 commits
  • magnum-mysql-tests/src — 1 commit
  • pg/src — 1 commit

Notable commits

  • fix: Fix doc (#92)
  • fix: Merge pull request #10 from lbialy/bugfix/add-missing-dbcodec-compile-error
  • fix: Merge pull request #21 from AugustNagro/fix-scala-bigdecimal-codec
  • fix: Merge pull request #39 from AugustNagro/fix-logging-package
  • fix: additional testing, fix SqlName on case labels
  • fix: fix Logger name
  • fix: fix Repo methods in README
  • fix: fix ScalaBigDecimalCodec
  • fix: fix inserting single PG enum (#100)
  • fix: fix readme snippet
  • fix: fix resource use in MySql tests
  • fix: fix spec (#59)
  • fix: readme fix
  • change: 134: Improve Spec documentation, add test with LIKE (#135)
  • change: 144: Use virtual thread blocking executor in ZIO tests (#145)
  • change: Add SqlArrayCodec for UUID and tests. (#129)
  • change: Add ZIO module providing connect and transact mechanism adapted to ZIO (#47)
  • change: Add badge (#81)
  • change: Add minimal CI (#53)
  • change: DataSource is in the javax.sql package
  • …and 140 more

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

Survey your own repository

AugustNagro/magnum 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 20 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 a5930afef4414eeb4bd8277d317fa58d747c6141 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.