Repository navigation
Release v0.1.0
The first release of Fundamentals.Go: the shared domain values, concept recognition, correlation context and optional dependency injection that Arc.Go and Chronicle.Go build on, matching C# Cratis Fundamentals where both products use it. Requires Go 1.26 or later and has no dependencies beyond the standard library.
Added
- Package
conceptswithUUID,DateOnly,TimeOnlyandTimeSpan, using the canonical .NET wire forms: lowercase dashed UUIDs in RFC byte order,yyyy-MM-dddates, 100 nsTimeOnlyprecision, andTimeSpanin the .NET constant format across the full signed tick range. Parsing is strict and failure-atomic, and JSONnullis rejected for non-nullable values. (#2) concepts.Concept[T]for declaring a domain value's scalar representation,concepts.Underlyingfor recognizing concepts and shared scalars from type metadata alone (exact scalar type,ScalarKind, pointer depth, and inspectable*TypeErrorreasons with stable values), andconcepts.CheckJSONfor validating encoded concept values against their declared representation. See concept authoring and recognition. (#4)concepts.UUIDimplementsdatabase/sqlScannerandValuer. Usesql.Null[concepts.UUID]for nullable columns. (#19)- Package
correlationwithWithIDandFromContext, sharing one correlation ID throughcontext.Contextacross Arc.Go and Chronicle.Go. Reads never generate an ID. (#8) - Package
dependencyinjection, an optional contract with exact-type keys, typed bindings includingBindFunc1–BindFunc4that derive dependencies from parameter types, owned and borrowed lifetimes, scopes, and stable error categories. Plain constructors need none of it. (#11) - Package
dependencyinjection/container, a default container with graph validation at build time, singleton, scoped and transient lifetimes, reverse-order cleanup, a scope-factory facade and context guards. (#12) - Package
dependencyinjection/ditestwith conformance suites, so any container adapter can prove it meets the contract. See dependency injection. (#13) - A parity map recording, for every C# Fundamentals area, what is implemented, what is intentionally different and what is planned. (#10)