Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
@ethersphere/bee-js
Advanced tools
JavaScript SDK for connecting to a Bee node in the Swarm decentralised storage.
Supports Node.js 18+, Vite and Webpack.
Write your code in CJS, MJS or TypeScript.
Intended to be used with Bee version 2.1.0.
npm install @ethersphere/bee-js
or
yarn add @ethersphere/bee-js
const { Bee } = require('@ethersphere/bee-js')
import { Bee } from '@ethersphere/bee-js'
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>
Swarm incentivizes nodes in the network to store content, therefor all uploads require a paid postage batch.
import { Bee } from '@ethersphere/bee-js'
async function getOrCreatePostageBatch() {
const bee = new Bee('http://localhost:1633')
let batchId
const batches = await bee.getAllPostageBatch()
const usable = batches.find(x => x.usable)
if (usable) {
batchId = usable.batchID
} else {
batchId = await bee.createPostageBatch('500000000', 20)
}
}
The following examples all assume an existing batchId.
import { Bee } from '@ethersphere/bee-js'
const bee = new Bee('http://localhost:1633')
const uploadResult = await bee.uploadData(batchId, 'Bee is awesome!')
const data = await bee.downloadData(uploadResult.reference)
console.log(data.text()) // prints 'Bee is awesome!'
import { Bee } from '@ethersphere/bee-js'
const bee = new Bee('http://localhost:1633')
const result = await bee.uploadFile(batchId, file)
import { Bee } from '@ethersphere/bee-js'
const bee = new Bee('http://localhost:1633')
const result = await bee.uploadFiles(batchId, fileList)
import { Bee } from '@ethersphere/bee-js'
import { createReadStream } from 'fs'
const bee = new Bee('http://localhost:1633')
const readable = createReadStream('./path/to/large.bin')
const uploadResult = await bee.uploadFile(batchId, readable)
import { Bee } from '@ethersphere/bee-js'
import { createReadStream } from 'fs'
const bee = new Bee('http://localhost:1633')
const uploadResult = await bee.uploadFilesFromDirectory(batchId, './path/to/gallery/')
Check out our examples repo for some more ideas on how to use bee-js
You can find the full documentation here. The API reference documentation can be found here.
Stay up to date by joining the official Discord and by keeping an eye on the releases tab.
There are some ways you can make this module better:
Install project dependencies with
npm i
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
fdp-play
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 fdp-play
script. If you want to use custom setup,
you can change the behavior of tests to different addresses using environment variables BEE_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).
In order to compile NodeJS code run
npm run compile:node
or for Browsers
npm run compile:browser
FAQs
Javascript client for Bee
The npm package @ethersphere/bee-js receives a total of 265 weekly downloads. As such, @ethersphere/bee-js popularity was classified as not popular.
We found that @ethersphere/bee-js demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.