All Projects → ethersphere → bee-js

ethersphere / bee-js

Licence: BSD-3-Clause license
Javascript client library for connecting to Bee decentralised storage

Programming Languages

typescript
32286 projects
shell
77523 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to bee-js

swarm-cli
Manage your Bee node and interact with the Swarm network via the CLI
Stars: ✭ 36 (-28%)
Mutual labels:  decentralized, swarm, bee
Embark
Framework for serverless Decentralized Applications using Ethereum, IPFS and other platforms
Stars: ✭ 3,478 (+6856%)
Mutual labels:  decentralized, swarm
tool-db
A peer-to-peer decentralized database
Stars: ✭ 15 (-70%)
Mutual labels:  decentralized, swarm
haveno
Decentralized P2P exchange built on Monero and Tor
Stars: ✭ 542 (+984%)
Mutual labels:  decentralized
nvim
Repository for the Tandem NeoVim Plugin
Stars: ✭ 23 (-54%)
Mutual labels:  decentralized
qrono
🕥 Just right date time library
Stars: ✭ 111 (+122%)
Mutual labels:  javascript-library
mooncake
The first decentralized social app based on Desmos
Stars: ✭ 42 (-16%)
Mutual labels:  decentralized
BitFact
🛡️ Robust data integrity tool. Prove data, text, & files using the Ethereum blockchain.
Stars: ✭ 42 (-16%)
Mutual labels:  javascript-library
java
📚 Recursos para aprender Java
Stars: ✭ 31 (-38%)
Mutual labels:  javascript-library
validid
A Javascript library to validate ID card numbers of China, Taiwan, Hong Kong and South Korea
Stars: ✭ 37 (-26%)
Mutual labels:  javascript-library
Metrix
Decentralized, Anonymous, Fast & Secure Cryptocurrency
Stars: ✭ 41 (-18%)
Mutual labels:  decentralized
Motoro
Smart contracts for decentralized rentals of vehicles.
Stars: ✭ 96 (+92%)
Mutual labels:  decentralized
jsdoc-api
A programmatic interface for jsdoc3 with a few extra features
Stars: ✭ 55 (+10%)
Mutual labels:  javascript-library
ansicolor
A JavaScript ANSI color/style management. ANSI parsing. ANSI to CSS. Small, clean, no dependencies.
Stars: ✭ 91 (+82%)
Mutual labels:  javascript-library
banana-i18n
banana-i18n - Javascript Internationalization library
Stars: ✭ 61 (+22%)
Mutual labels:  javascript-library
gitbackup
Backup and archive of Github repositories.
Stars: ✭ 18 (-64%)
Mutual labels:  decentralized
nodepolus2
NodePolus is a JavaScript library containing multiple implementations of the Among Us network protocol.
Stars: ✭ 295 (+490%)
Mutual labels:  javascript-library
anypalette.js
🎨 Read/write all color palette file formats ❤🧡💛💚💙💜
Stars: ✭ 41 (-18%)
Mutual labels:  javascript-library
ipfs-chat
Real-time P2P messenger using go-ipfs pubsub. TUI. End-to-end encrypted texting & file-sharing. NAT traversal.
Stars: ✭ 84 (+68%)
Mutual labels:  decentralized
denarius
Denarius [$D] is a PoW/PoS Hybrid Cryptocurrency with Tribus a new PoW Hashing Algo built specifically for D, one of a kind hybrid masternodes called Fortuna Stakes, atomic swaps, staking, mining, IPFS, optional Native Tor and I2P, and much more!
Stars: ✭ 105 (+110%)
Mutual labels:  decentralized

Bee-js

Tests FOSSA Status standard-readme compliant js-standard-style

Client library for connecting to Bee decentralised storage

Warning: This project is in beta state. There might (and most probably will) be changes in the future to its API and working. Also, no guarantees can be made about its stability, efficiency, and security at this stage.

This project is intended to be used with Bee version 1.7.0. Using it with older or newer Bee versions is not recommended and may not work. Stay up to date by joining the official Discord and by keeping an eye on the releases tab.

Table of Contents

Install

npm

> npm install @ethersphere/bee-js --save

yarn

> yarn add @ethersphere/bee-js

Be aware, if you are running Yarn v1 and are attempting to install this repo using GitHub URL, this won't unfortunately work as it does not correctly handle execution of prepare script.

Use in Node.js

We require Node.js's version of at least 12.x

var BeeJs = require("@ethersphere/bee-js");

Use in a browser with browserify, webpack or any other bundler

var BeeJs = require("@ethersphere/bee-js");

Use in a browser Using a script tag

Loading this module through a script tag will make the BeeJs object available in the global namespace.

<script src="https://unpkg.com/@ethersphere/bee-js/dist/index.browser.min.js"></script>

Usage

import { Bee } from "@ethersphere/bee-js"

bee = new Bee("http://localhost:1633")

// Be aware, this creates on-chain transactions that spend Eth and BZZ!
const batchId = await bee.createPostageBatch('100', 17)
const fileHash = await bee.uploadData(batchId, "Bee is awesome!")
const data = await bee.downloadData(fileHash)

console.log(data.text()) // prints 'Bee is awesome!'

Check out our examples repo for some more ideas on how to use bee-js

Documentation

You can find the full documentation here. The API reference documentation can be found here.

Contribute

There are some ways you can make this module better:

  • Consult our open issues and take on one of them
  • Help our tests reach 100% coverage!
  • Join us in our Discord chat in the #develop-on-swarm channel if you have questions or want to give feedback

Setup

Install project dependencies with

npm i

Test

The tests run in both context: node and dom with Jest.

To run the integration tests, you need to spin up local Bee cluster using our bee-factory project. In order to do that you have to have locally Docker running on your machine, but afterwards you can just simply run npm run bee, which spins up the cluster and display Queen's logs. If you want to exit hit CTRL+C.

If you want to skip creation of postage stamps every run of integration tests you can create stamps for both nodes and set them under env. variables BEE_POSTAGE and BEE_PEER_POSTAGE.

By default, for integration tests two bee nodes are expected to run on localhost on addresses http://localhost:1633 and http://localhost:11633. These are the default values for the bee-factory script. If you want to use custom setup, you can change the behavior of tests to different addresses using environment variables BEE_API_URL, BEE_DEBUG_API_URL, BEE_PEER_DEBUG_API_URL and BEE_PEER_API_URL.

There are also browser tests by Puppeteer, which also provide integrity testing.

npm run test:browser

The test HTML file which Puppeteer uses is the test/testpage/testpage.html. To open and manually test BeeJS with developer console, it is necessary to build the library first with npm run compile:browser (running the browser tests npm run test:browser also builds the library).

Compile code

In order to compile NodeJS code run

npm run compile:node

or for Browsers

npm run compile:browser

Maintainers

License

BSD-3-Clause

FOSSA Status

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].