JS/TS Peer for the Fluence p2p network
Go to file
2023-02-07 01:23:02 +04:00
.github Move non-relevant code from Marine repo into FluenceJS (#227) 2023-01-09 15:51:15 +03:00
packages Added the js-client api package, WIP 2023-02-07 01:23:02 +04:00
.editorconfig Turn on noImplicitAny and strictNullChecks (#153) 2022-05-12 17:14:16 +03:00
.gitignore chore(deps): bump fluence-js to 0.27.0, avm: 0.31.11 (#199) 2022-11-01 20:00:17 +04:00
.npmrc feat: Update Libp2p to latest version. Add standalone bundled JS Client (#239) 2023-02-06 15:18:04 +03:00
.prettierrc.cjs feat: Update Libp2p to latest version. Add standalone bundled JS Client (#239) 2023-02-06 15:18:04 +03:00
ci.js Fix issue when FluenceJS was not working in webpack-based web projects (#176) 2022-09-05 18:24:19 +03:00
CONTRIBUTING.md Returned built-in Aquamarine calls, updated docs (#11) 2021-01-29 16:48:27 +03:00
LICENSE Returned built-in Aquamarine calls, updated docs (#11) 2021-01-29 16:48:27 +03:00
package.json feat: Update Libp2p to latest version. Add standalone bundled JS Client (#239) 2023-02-06 15:18:04 +03:00
pnpm-lock.yaml Added the js-client api package, WIP 2023-02-07 01:23:02 +04:00
pnpm-workspace.yaml Fix issue when FluenceJS was not working in webpack-based web projects (#176) 2022-09-05 18:24:19 +03:00
README.md Move non-relevant code from Marine repo into FluenceJS (#227) 2023-01-09 15:51:15 +03:00
tsconfig.json feat: Update Libp2p to latest version. Add standalone bundled JS Client (#239) 2023-02-06 15:18:04 +03:00

Fluence JS

npm

Official TypeScript implementation of the Fluence Peer.

Getting started

To start developing applications with Fluence JS refer to the official documentation

Contributing

While the project is still in the early stages of development, you are welcome to track progress and contribute. As the project is undergoing rapid changes, interested contributors should contact the team before embarking on larger pieces of work. All contributors should consult with and agree to our basic contributing rules.

Setting up dev environment

Fluence JS uses pnpm to manage monorepo packages. See pnpm.io for installation instructions.

Install dependencies

pnpm install

Build all packages

pnpm -r build

Repository structure

Folder Package Description
packages/core/js-peer @fluencelabs/js-peer TypeScript implementation of the Fluence Peer
packages/core/interfaces @fluencelabs/interfaces Common interfaces used in Fluence Peer
packages/core/connection @fluencelabs/connection Connectivity layer used in Fluence Peer
packages/core/keypair @fluencelabs/keypair Key Pair implementation
packages/marine/background-runner @fluencelabs/marine.background-runner MarineJS background runner
packages/marine/deps-loader.node @fluencelabs/marine.deps-loader.node MarineJS deps loader for nodejs
packages/marine/deps-loader.web @fluencelabs/marine.deps-loader.web MarineJS deps loader for web
packages/marine/worker-script @fluencelabs/marine.worker-script MarineJS background worker script

Running tests

Tests are split into unit and integration categories. By default integration tests require a locally running Fluence node with 4310 port open for ws connections. The dependency can be started with docker

 docker run --rm -e RUST_LOG="info" -p 1210:1210 -p 4310:4310 fluencelabs/fluence -t 1210 -w 4310 -k gKdiCSUr1TFGFEgu2t8Ch1XEUsrN5A2UfBLjSZvfci9SPR3NvZpACfcpPGC3eY4zma1pk7UvYv5zb1VjvPHwCjj

To run all tests

pnpm -r test

To run only unit tests

pnpm -r test:unit

To run only integration tests

pnpm -r test:integration

License

Apache 2.0