Show HN: Reactive Signals for Python – inspired by Angular's reactivity model

Hey everyone, I built reaktiv, a small reactive signals library for Python, inspired by Angular’s reactivity model. It lets you define Signals, Computed Values, and Effects that automatically track dependencies and update efficiently. The main focus is async-first reactivity without external dependencies.Here is an example code:``` import asyncio from reaktiv import Signal, ComputeSignal, Effectasync def main(): count = Signal(0) doubled = ComputeSignal(lambda: count.get() * 2) async def log_count(): print(f"Count: {count.get()}, Doubled: {doubled.get()}") Effect(log_count).schedule() count.set(5) # Triggers: "Count: 5, Doubled: 10" await asyncio.sleep(0) # Allow effects to process asyncio.run(main()) ``` Comments URL: https://news.ycombinator.com/item?id=42880873 Points: 9 # Comments: 2

Jan 30, 2025 - 21:46
 0
Show HN: Reactive Signals for Python – inspired by Angular's reactivity model

Hey everyone, I built reaktiv, a small reactive signals library for Python, inspired by Angular’s reactivity model. It lets you define Signals, Computed Values, and Effects that automatically track dependencies and update efficiently. The main focus is async-first reactivity without external dependencies.

Here is an example code:

``` import asyncio from reaktiv import Signal, ComputeSignal, Effect

async def main(): count = Signal(0) doubled = ComputeSignal(lambda: count.get() * 2)

    async def log_count():
        print(f"Count: {count.get()}, Doubled: {doubled.get()}")

    Effect(log_count).schedule()
    count.set(5)  # Triggers: "Count: 5, Doubled: 10"
    await asyncio.sleep(0)  # Allow effects to process
asyncio.run(main()) ```

Comments URL: https://news.ycombinator.com/item?id=42880873

Points: 9

# Comments: 2