• Stars
    star
    487
  • Rank 90,352 (Top 2 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Zero-cost functional reactive Signals for Rust

crates.io docs.rs

This is a Rust crate that provides zero-cost FRP Signals which are built on top of the futures crate.

Hold on, zero-cost? Yup, that's right: if you don't use a feature you don't pay any performance cost, and the features that you do use are as fast as possible. Signals are very efficient.

What is a Signal? It is a value that changes over time, and you can be efficiently notified whenever its value changes.

This is useful in many situations:

  • You can automatically serialize your program's state to a database whenever it changes.

  • You can automatically send a message to the server whenever the client's state changes, or vice versa. This can be used to automatically, efficiently, and conveniently keep the client and server's state in sync.

  • A game engine can use Signals to automatically update the game's state whenever something changes.

  • You can easily represent continuous input (such as the current temperature, or the current time) as a Signal.

  • If you create a GUI, you can use Signals to automatically update the GUI whenever your state changes, ensuring that your state and the GUI are always in sync.

  • You can use dominator to create web apps and automatically keep them in sync with your program's state.

  • And many more situations!

The best way to learn more is to read the tutorial.

More Repositories

1

rust-dominator

Zero-cost ultra-high-performance declarative DOM library using FRP signals for Rust!
Rust
840
star
2

AutoScroll

For users on Linux or Mac, the lack of autoscroll can be a big pain. This extension can help!
JavaScript
126
star
3

blender-rigid-body-bones

Blender Addon which adds rigid body / spring physics to bones
Python
102
star
4

rollup-plugin-purs

Bundles PureScript modules with Rollup
JavaScript
70
star
5

tab-organizer

Google Chrome Extension that makes it easier to manage many tabs!
Rust
56
star
6

nulan

Purely functional statically typed Lisp which compiles to JavaScript
JavaScript
45
star
7

SaltyBetBot

Bot which automatically bets on saltybet.com
Rust
37
star
8

Immutable

Fast immutable data structures
JavaScript
33
star
9

rust-discard

Discard trait which allows for intentionally leaking memory.
Rust
8
star
10

programming-notes

Various notes, about various thoughts I've had, about various programming topics.
JavaScript
6
star
11

fable-getting-started

Fully working Fable project which makes it easy to get started
F#
6
star
12

rollup-plugin-rust

Rollup plugin for bundling and importing Rust crates
JavaScript
5
star
13

blender-bake-scene

Blender add-on for baking your scene to textures
Python
5
star
14

rollup-plugin-webext

Rollup plugin that makes it easy to develop Chrome / Firefox extensions
JavaScript
2
star
15

rust-web-worker-test

Rust
2
star
16

purescript-tree-shaking

Test the different ways of achieving tree shaking in PureScript
2
star
17

nino

Nino is a set of tools to make it easier to compile to JavaScript
JavaScript
2
star
18

screeps

Rust
2
star
19

wasm-pack-perf-test

JavaScript
1
star
20

fable-view

Functional reactive programming in Fable using views
F#
1
star