AugustNagro/magnum
58.7
Adequate · 20 September 2026
4.4k
lines of production code
Scala
primary language
1
measurement over time
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.