notes:sycl
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| notes:sycl [2026/09/14 08:05] – created emery | notes:sycl [2026/09/15 12:55] (current) – [Syndicate] typo emery | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Sycl ====== | ====== Sycl ====== | ||
| - | Sycl is the Tcl implementation of the [[.: | + | [[https:// |
| - | https:// | + | Sycl is comprised of the '' |
| - | Example programs: | + | ==== Preserves ==== |
| + | |||
| + | A Tcl interpreter extension((https:// | ||
| + | Preserves((https:// | ||
| + | Preserves can be written in text syntax, which the interpreter extension | ||
| + | can parse automatically from Tcl strings. | ||
| + | Preserves also has a binary syntax, which the Syndicate library uses for communicating over a network. | ||
| + | |||
| + | Preserves text syntax is a superset of JSON, so the library also acts as a JSON parser. The library can render to JSON as well, but some type conversions are made. | ||
| + | |||
| + | <code tcl> | ||
| + | package require preserves | ||
| + | |||
| + | set pr [preserves parse {{foo: 0 bar: 1}}] | ||
| + | # {bar: 1 foo: 0} | ||
| + | |||
| + | preserves render $pr | ||
| + | # {bar: 1 foo: 0} | ||
| + | |||
| + | preserves render -json $pr | ||
| + | # {" | ||
| + | </ | ||
| + | |||
| + | ==== Syndicate ==== | ||
| + | |||
| + | The Syndicate library((https:// | ||
| + | |||
| + | The library supports a SAM facet((https:// | ||
| + | |||
| + | === Relaying === | ||
| + | |||
| + | The library does not implement [[.: | ||
| + | It can however communicate with external dataspaces provided by '' | ||
| + | |||
| + | <code tcl> | ||
| + | package require syndicate | ||
| + | |||
| + | set route {<route [<tcp " | ||
| + | |||
| + | syndicate:: | ||
| + | |||
| + | connect $route remoteDataspace { | ||
| + | setDefaultTarget $remoteDataspace | ||
| + | |||
| + | assert [list hello world] | ||
| + | |||
| + | during " | ||
| + | puts " | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | vwait ${exampleActor}:: | ||
| + | </ | ||
| + | |||
| + | === Patterns === | ||
| + | |||
| + | Patterns for matching SAM assertions are written as strings. | ||
| + | The pattern '' | ||
| + | <code tcl> | ||
| + | set x foo | ||
| + | set y bar | ||
| + | set z [list foo bar baz] | ||
| + | </ | ||
| + | |||
| + | ===== Availability ===== | ||
| + | |||
| + | Sycl is only known to have been built with the [[Nix]] package manager, but Nix can work on practically any Linux distro. | ||
| + | Sycl is compatible with Tcl 8 & 9. | ||
| + | |||
| + | ===== Example programs | ||
| * [[.: | * [[.: | ||
| + | * [[.: | ||
notes/sycl.1789373135.txt.gz · Last modified: by emery
