Download Latest Version V9.3.3 source code.tar.gz (17.7 MB)
Email in envelope

Get an email when there's a new version of Marten

Home / V9.3.0
Name Modified Size InfoDownloads / Week
Parent folder
Marten 9.3.0 source code.tar.gz 2026-05-28 17.7 MB
Marten 9.3.0 source code.zip 2026-05-28 19.2 MB
README.md 2026-05-28 4.2 kB
Totals: 3 Items   36.9 MB 0

Marten 9.3.0

The big-ticket items in this release are binary event serialization (#4515) and the PostGIS + pgvector companion packages lifted into the Marten repo from CritterWatch.

Major

  • Binary event serialization for the event store (#4515 — landed across #4578, #4581, #4583, #4584). Opt individual event types into a binary wire format (MemoryPack out of the box, or any IEventBinarySerializer you bring) on a per-event-type basis. JSON-serialized and binary-serialized events coexist in the same mt_events table so the feature can be turned on in an existing system with no migration of existing data. Works on every EventAppendMode (Rich + Quick + QuickWithServerTimestamps) and through BulkEventAppender. New optional NuGet: Marten.MemoryPack. See the binary-serialization docs for the design, registration, and the versioned-event-types schema-evolution recommendation.

  • PostGIS + pgvector companion packages (#4576). Two new optional NuGets imported from CritterWatch:

  • Marten.PostGISUsePostGIS() opt-in that enables the postgis extension on every database Marten manages (multi-tenant aware), wires NetTopologySuite + GeoJSON serialization, and exposes four spatial query helpers (NearestToAsync, WithinDistanceAsync, ContainingAsync, IntersectingAsync). See the PostGIS docs.
  • Marten.PgVectorUsePgVector() opt-in that enables the vector extension on every database (also addresses [#2515] — extensions in tenant databases). VectorSearchAsync for similarity search plus an embedding-aware VectorProjection base class. See the pgvector docs.

Fixes

  • #4575: CreatedAt.MapTo() regression in v9 (#4577). The closed-shape storage rewrite ported every other metadata-column read-back but missed mt_created_at; this restores the v8 behavior where a [CreatedAt]-annotated / m.CreatedAt.MapTo(...)-mapped member is populated after a load.

Build / Release

  • Pack target updated (#4582). Marten.PostGIS, Marten.PgVector, and Marten.MemoryPack are now included in the Nuke Pack target — without this they would silently never reach NuGet. 9 packages ship in 9.3.0 (up from 6): Marten, Marten.Newtonsoft, Marten.NodaTime, Marten.AspNetCore, Marten.EntityFrameworkCore, Marten.SourceGenerator, Marten.PostGIS, Marten.PgVector, Marten.MemoryPack.

  • Weasel 9.0.2 dependency bump ([JasperFx/weasel#299](https://github.com/JasperFx/weasel/issues/299)). Fixes PostgresqlMigrator.executeWithConcurrencyRetryAsync to reopen a Closed/Broken connection between retry attempts — eliminates the intermittent Connection is not open failure surfaced under concurrent migration races.

Documentation updates

Pages added or updated in 9.3.0:

Local docker

The local docker-compose.yml (from [#4576]) layers postgresql-17-postgis-3 + postgresql-17-pgvector on the official multi-arch postgres:17 image so the Marten test suite can exercise the new extensions locally. PLv8 was dropped — Marten core SQL no longer requires it.

Full Changelog: https://github.com/JasperFx/marten/compare/V9.2.1...V9.3.0

Source: README.md, updated 2026-05-28