Skip to content

1.0.0

Choose a tag to compare

@Fenrur Fenrur released this 08 Feb 00:49
· 32 commits to main since this release

Initial Stable Release

Core Features

  • Push-Pull Glitch-Free Model: Ensures derived signals never observe inconsistent intermediate states
  • Thread-Safe: All operations use atomic primitives (AtomicReference, AtomicLong, CopyOnWriteArrayList)
  • Lazy Subscription: Signals only subscribe to dependencies when needed
  • Batching: Group multiple updates into a single consistent notification

Signal Types

Source Signals:

  • DefaultMutableSignal - Mutable signal with atomic updates
  • DefaultSignal - Immutable signal with fixed value
  • StateFlowSignal / MutableStateFlowSignal - Kotlin StateFlow wrappers
  • FlowSignal - Kotlin Flow wrapper
  • ReactiveStreamsSignal - Reactive Streams Publisher wrapper

Computed Signals:

  • MappedSignal - Transform values with map
  • FilteredSignal - Filter with fallback value
  • CombinedSignal2/3/4/5/6 - Combine multiple signals
  • FlattenSignal - Flatten Signal<Signal>
  • ScanSignal - Accumulate values
  • DistinctBySignal - Deduplicate by key
  • WithLatestFromSignal - Sample with latest
  • PairwiseSignal - Consecutive pairs
  • MapNotNullSignal - Map with null filtering
  • BimappedSignal - Bidirectional mapping

Bindable Signals:

  • DefaultBindableSignal - Change source dynamically
  • DefaultBindableMutableSignal - Mutable version with cycle detection

Operators

  • Arithmetic: +, -, *, /, %
  • Boolean: and, or, xor, not
  • String operations
  • Collection operations
  • combine, combineAll, zip

Testing

  • 627 tests covering concurrency, glitch-free behavior, and all operators