Skip to content
/ flux Public

Flux - Elegant State Management and Event System

License

Notifications You must be signed in to change notification settings

Alwatr/flux

Flux - Elegant State Management and Event System

Introduction

Flux empowers your applications with elegant and powerful state management and event handling capabilities. Built on the observable design pattern, Flux provides a lightweight yet robust foundation for managing global signals and states.

Key Features:

  • Intuitive State Management: Embrace Flux as an advanced alternative to Redux or Recoil, minus the complexities and unnecessary overhead. Each signal maintains its own value, offering seamless state control.
  • Finite-State Machines (FSM): Leverage observables to gracefully manage invocations and state transitions within your finite-state machines.
  • Server Context Management: Effortlessly handle server-side context with Flux's elegant context manager, ensuring optimal organization and control.
  • Remote Context Management: Manage remote context data with offline-first support and automatic revalidation.
  • Fetch State Machine: Simplify state management for server requests with built-in support for fetch operations.

Packages

Core Packages

  • Observable: Provides the core observable pattern implementation used throughout the Flux ecosystem. See packages/observable for more details.
  • Context: A simple yet powerful TypeScript library for managing application context and facilitating efficient communication between components. See packages/context for more details.
  • Signal: A lightweight library for managing global signals and state changes. See packages/signal for more details.

State Machines

  • FSM: Core finite-state machine implementation. See packages/fsm for more details.
  • FetchStateMachine: Simplifies state management for server requests with built-in support for fetch operations. See packages/fetch-state-machine for more details.
  • RemoteContext: Manages remote context data with offline-first support and automatic revalidation. See packages/remote-context for more details.

Sponsors

The following companies, organizations, and individuals support flux ongoing maintenance and development. Become a Sponsor to get your logo on our README and website.

Exir Studio

Contributing

Contributions are welcome! Please read our contribution guidelines before submitting a pull request.

License

This project is licensed under the AGPL-3.0 License.