A lightweight Swift library for state management using unidirectional data flow, built on Swift Concurrency.
OneWay is a Swift library for state management that implements unidirectional data flow, similar to patterns like Flux or The Composable Architecture. It provides a structured way to manage application state through reducers and effects, ensuring predictable updates and thread safety via Swift Concurrency. The library is designed to simplify complex business logic and can be used across all Apple platforms.
Swift developers building applications for iOS, macOS, tvOS, visionOS, or watchOS who need a lightweight, thread-safe state management solution. It is particularly suitable for those adopting unidirectional data flow patterns in SwiftUI or UIKit projects.
Developers choose OneWay for its simplicity, zero dependencies, and built-in thread safety through Swift Concurrency. It offers a clean separation of concerns, flexible integration beyond UI layers, and dedicated testing support, making it a practical alternative to more complex state management libraries.
A Swift library for state management with unidirectional data flow.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built on Swift Concurrency to guarantee thread safety in all operations, as highlighted in the data flow diagrams and features, ensuring reliable state updates in concurrent environments.
Has zero third-party dependencies, making integration straightforward and keeping the library lightweight, as emphasized in the features list for easy adoption.
Can be used in any application layer, not just UI, to simplify complex business logic, per the library's philosophy and usage examples beyond presentation layers.
Includes a dedicated testing module with helper functions like 'expect' for concise unit tests, as demonstrated in the testing section, facilitating robust test coverage.
Limited exclusively to Apple platforms (iOS, macOS, etc.), making it unsuitable for projects targeting non-Apple systems or requiring broader cross-platform consistency.
Heavily relies on Swift Concurrency, which can be a barrier for teams still using older concurrency patterns or not ready to migrate to Swift 6, as noted in the version requirements.
Lacks advanced tooling such as middleware, state persistence, or debugging features that are common in more mature libraries like The Composable Architecture.