TypeScript and JavaScript implementation of Dataspaces, Syndicate, and TypeScript language support for Syndicate. Targets both the browser and node.js.
  • TypeScript 63.1%
  • JavaScript 35.2%
  • Shell 0.7%
  • HTML 0.5%
  • Makefile 0.2%
  • Other 0.3%
Find a file
Tony Garnock-Jones 3e17df1c9a Publish
- @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
 - @syndicate-lang/[email protected]
2025-07-18 14:50:00 +02:00
examples Declare externals in rollup configs (other examples will need similar changes) 2025-07-13 22:52:49 +02:00
git-hooks Use new fixcopyright ignore feature 2023-12-18 10:30:38 +13:00
packages Publish 2025-07-18 14:50:00 +02:00
todo Seconds-based timer protocols 2023-02-06 16:08:12 +01:00
.gitignore Lerna wants us to not ignore package-lock.json 2021-01-23 23:55:30 +01:00
.npmignore Switch to apenwarr's redo 2018-11-06 23:13:51 +00:00
iifeExternalPlugin.ts tsup, vitest, and straighten out combined commonjs/esm/browser modules 2025-07-15 17:45:46 +02:00
lerna.json Initial migration to TypeScript 5 2025-07-13 01:42:30 +02:00
LICENCE Put licences in the place that lerna expects them (?) 2021-12-10 14:02:58 +01:00
Makefile Convenience targets 2025-07-15 17:48:10 +02:00
package.json Prefer .js for browser-usable dist file 2025-07-18 14:32:27 +02:00
README.md Improve README slightly 2023-11-17 14:12:14 +01:00
setup.sh Oops. Omitted these 2021-12-09 22:28:59 +01:00
syndicate-js.code-workspace syndicate-js.code-workspace 2024-04-12 10:28:55 +02:00
TODO.md Seconds-based timer protocols 2023-02-06 16:08:12 +01:00
watchall tsup, vitest, and straighten out combined commonjs/esm/browser modules 2025-07-15 17:45:46 +02:00
yarn.lock Prefer .js for browser-usable dist file 2025-07-18 14:32:27 +02:00

Syndicate/js

A fourth-generation implementation of Dataspaces and Syndicate for TypeScript and JavaScript, in both node.js and the browser. The implementation techniques herein are the subject of a forthcoming paper.

Branches

The main branch is where active development happens:

git clone -b main https://git.syndicate-lang.org/syndicate-lang/syndicate-js

Building

This project uses yarn, not npm.

The repository is a monorepo, using yarn workspaces. Lerna is used as a thin veneer atop yarn workspaces, providing convenient automation for package version management and publication.

After a checkout, run:

make bootstrap

Alternatively, running:

yarn install
./node_modules/.bin/lerna exec yarn prepare

will download and install all dependencies and then build all the packages.

Licence

@syndicate-lang, an implementation of Syndicate for TypeScript and JavaScript.
Copyright (C) 2016-2021 Tony Garnock-Jones [email protected]

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Older versions

An earlier TypeScript+JavaScript implementation from early 2021 (the primary difference to main being a lack of object-capability support) can be found on the typescript1 branch:

git clone -b typescript1 https://git.syndicate-lang.org/syndicate-lang/syndicate-js

Finally, the babel-based branch is from 2018, and is an implementation for JavaScript only. It extends babel with new syntax and new plugins (rather than implementing its own error-tolerant parser, like typescript1 and main):

git clone -b babel-based https://git.syndicate-lang.org/syndicate-lang/syndicate-js