syndicate-2017/js
Tony Garnock-Jones dede7f08a7 Use strings-of-HTML and mustache.js for DOM fragments.
This avoids churn in the dataspace for no-op DOM updates, but at the
cost of losing the identity of multiple pieces of asserted DOM when
they end up being textually identical.

The fix is, generally, to make sure your DOM fragments are different
in some (perhaps invisible when rendered) way. Next commit updates the
IoT demo to avoid duplicate fragments.
2016-05-10 22:38:40 -04:00
..
bin Split out compiler to separate syndicatec command 2016-03-19 13:01:14 -04:00
compiler forever => react, state => react, init => do, done => finally, until => react until 2016-05-10 18:49:12 -04:00
dist Initial commit. 2016-01-30 21:58:59 -05:00
examples Use strings-of-HTML and mustache.js for DOM fragments. 2016-05-10 22:38:40 -04:00
src Use strings-of-HTML and mustache.js for DOM fragments. 2016-05-10 22:38:40 -04:00
test Implement Syndicate/js broker-client and chat app. 2016-05-10 00:40:53 -04:00
third-party Initial commit. 2016-01-30 21:58:59 -05:00
.gitignore Initial commit. 2016-01-30 21:58:59 -05:00
Makefile Fill TEMP_CHECKOUT/dist from working copy 2016-04-06 18:31:24 +02:00
README.md Split and rename route.js into trie.js, struct.js and special.js 2016-05-08 11:33:39 -04:00
package.json Get in-browser compilation working using brfs 2016-03-19 14:49:44 -04:00

README.md

Syndicate-JS: Syndicate for Javascript environments

A walk through the code

Source files in src/, from most general to most specific:

  • reflect.js: Reflection on function formal parameter lists.

  • util.js: Functions extend and kwApply.

  • randomid.js: Generation of (cryptographically) random base64 strings.

  • trie.js: Implementation of dataspace trie structure.

  • patch.js: Implementation of patches over dataspace tries.

  • mux.js: Use of tries plus patches to build a (de)multiplexing routing structure.

  • dataspace.js: Implementation of core leaf actors and dataspaces.

  • ground.js: Pseudo-dataspace acting as the global outermost context for Syndicate actors.

  • ack.js: Utility for detecting when a previous state change has taken effect.

  • seal.js: Immutable container for data, used to hide structure from dataspace tries.

  • demand-matcher.js: Tracking and responding to demand and supply expressed as assertions.

  • dom-driver.js: Syndicate driver for displaying DOM fragments on a webpage.

  • jquery-driver.js: Syndicate driver for soliciting jQuery-based DOM events.

  • main.js: Main package entry point.