github velocitykode/velocity v0.76.3

latest releases: v0.93.0, v0.92.1, v0.92.0...
one month ago

Covers everything landed since the last published release (v0.32.1 -> v0.76.3).

Highlights - Features

  • Type-keyed component registry: string-keyed extensions replaced with a type-keyed registry: app.Register[*T], qualifier types for multi-instance, lifecycle/event wiring by interface detection, collision-free across modules.
  • Context-first core: context.Context now flows through every ORM entry point and every event callback, so cancellation, deadlines, and trace context reach the database and listeners.
  • Unified driver registry: one pluggable-driver registration surface across cache, queue, storage, mail, and the ORM.
  • First-class testing toolkit: FakeQueue, FakeMailer, FakeChannel, ActingAs/auth assertions, database-state assertions, response validation assertions, and transaction-rollback test isolation with savepoint nesting.
  • Auth, chosen in code: the auth user model is declared through the root package with an ORM-backed provider, plus JWT key rotation via PreviousSecrets/PreviousRSAPublicKeys.

Highlights - Performance

  • Router imports went standalone: service interfaces relocated to the contract leaf; importing the router no longer drags heavy drivers into your binary.
  • Lazy trace IDs: trace/span IDs materialize on first read instead of every request: Router_StaticHit 815ns/20 allocs -> 475ns/14 allocs.
  • ORM scan plans built once per result set instead of per row.
  • Queue workers drop the driver-wide mutex on SKIP LOCKED dialects.
  • Hot-path sweep across router, events, ORM, log, bond, and queue, including an atomic router commit fast path and cached validation rules/GCM AEAD.

Highlights - Fixes

  • Login throttling on by default: a cache-backed throttler replaces the former no-op.
  • Unset APP_ENV now means production, not development.
  • Async command dispatch actually dispatches: QueuePusher reconciled with contract.QueueDriver.
  • WebSocket MaxConnections can no longer be bypassed under concurrent upgrades (atomic slot reservation).
  • Nullable foreign keys match relations correctly: pointer fields are dereferenced in relation key matching.

Full Changelog: v0.32.1...v0.76.3

Don't miss a new velocity release

NewReleases is sending notifications on new releases.