Skip to content

1.0.0

Choose a tag to compare

@choule99 choule99 released this 14 Aug 17:52
2a22090

Skein 1.0.0 is the first stable release of a small, type-safe dependency-injection container for Swift. The default API is MainActor-isolated, with explicit options for Sendable nonisolated code and custom global actors.

Supported features

  • Type-safe module definitions and constructor injection
  • Lazy singleton, factory, supplied-instance, and flat typed-scope lifetimes
  • Protocol bindings and qualifiers for multiple bindings of the same type
  • Typed assisted factories for runtime arguments
  • Independently owned SkeinApplication containers and a global convenience API
  • Binding-owned graph roots with structural and eager startup validation
  • MainActor-first resolution, Sendable nonisolated bindings, and custom-global-actor bindings
  • Concurrent singleton creation coalescing and cycle detection across actor boundaries
  • Async disposal callbacks with deterministic reverse-order cleanup
  • Typed lifecycle, configuration, and resolution errors with source-aware diagnostics
  • Test-friendly isolated containers, module overrides, and manual dependency doubles
  • Optional SkeinSwiftUI integration for environment-based application injection and observable-object resolution

Requirements

  • Swift 6.0+
  • iOS 17+, macOS 15+, tvOS 17+, watchOS 10+, or visionOS 1+