| Name | Modified | Size | Downloads / 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
IEventBinarySerializeryou bring) on a per-event-type basis. JSON-serialized and binary-serialized events coexist in the samemt_eventstable so the feature can be turned on in an existing system with no migration of existing data. Works on everyEventAppendMode(Rich + Quick + QuickWithServerTimestamps) and throughBulkEventAppender. 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.PostGIS—UsePostGIS()opt-in that enables thepostgisextension 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.PgVector—UsePgVector()opt-in that enables thevectorextension on every database (also addresses [#2515] — extensions in tenant databases).VectorSearchAsyncfor similarity search plus an embedding-awareVectorProjectionbase 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 missedmt_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, andMarten.MemoryPackare now included in the NukePacktarget — 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.executeWithConcurrencyRetryAsyncto reopen a Closed/Broken connection between retry attempts — eliminates the intermittentConnection is not openfailure surfaced under concurrent migration races.
Documentation updates
Pages added or updated in 9.3.0:
- Binary Event Serialization (new)
- Optimizing for Performance and Scalability (links to the new binary-serialization page)
- PostGIS spatial support (new)
- pgvector support (new)
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