Skip to content
This repository has been archived by the owner on Nov 9, 2023. It is now read-only.

iacore/libredo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reactive signal/Dependency tracking library in Zig. Data management not included. Possible application: writing UI or build system logic.

Dependency graph data structure inspired by redo. Dependency tracker algorithom inspired by trkl. Benchmark code adapted from maverick-js/signals.

Documentation

Read src/main.zig.

Use as library

This is a Zig-only library. The module name is called signals. This git repo has no submodule, so the tarball can be used in .zon directly.

If you don't know how to use a Zig library, use the search engine to look it up.

Todo

  • add test suite more more tests
  • add solid.js-like interface

optimization ideas

The current BijectMap is fast enough already.

  • cache lookup, so BijectMap.add can be used later faster
  • use u16 instead of u64 as id: ~4x faster
  • coz: tested. not useful.
  • ReleaseFast: same speed as ReleaseSafe.
  • hashmap of hashset: see branch algo-hashmap. too slow
  • splay tree: see branch algo-splaytree. way too slow

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published