# 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 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 ## Building *These instructions are for the `main` branch.* This project uses [`yarn`](https://yarnpkg.com/), not `npm`. The repository is a monorepo, using [yarn workspaces](https://classic.yarnpkg.com/en/docs/workspaces/). [Lerna](https://lerna.js.org/) is used as a thin [veneer atop yarn workspaces](https://medium.com/@jsilvax/a-workflow-guide-for-lerna-with-yarn-workspaces-60f97481149d), providing convenient automation for package version management and publication. After a checkout, run: ```shell make bootstrap ``` Alternatively, running: ```shell 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 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 .