Skip to content

Releases: MainframeOS/erebos

v0.13.2

20 Jan 12:24
Compare
Choose a tag to compare
  • Fix providing the signParams to DataListWriter constructors in @erebos/doc-sync.
  • Remove duplicate @erebos/bzz types from @erebos/bzz-feed.

v0.13.1

16 Jan 14:12
Compare
Choose a tag to compare
  • Fix type signature of the write() method of TimelineWriter.
  • Bump dependency version of @erebos/hex in @erebos/keccak256.

v0.13.0

16 Jan 12:29
Compare
Choose a tag to compare

Breaking changes

  • The bzz-related packages have been refactored, the @erebos/api-bzz-base, @erebos/api-bzz-browser and @erebos/api-bzz-node packages are discontinued and should be replaced by @erebos/bzz, @erebos/bzz-browser, @erebos/bzz-node, @erebos/bzz-feed and @erebos/bzz-fs depending on the use cases, see below.
  • The @erebos/api-pss package has been renamed to @erebos/pss for consistency with the bzz-related packages.
  • In the @erebos/timeline package, the decode option has been removed from TimelineReaderConfig and the encode option from TimelineWriterConfig, instead the read() and write() methods could be overwritten to cover the use case.
  • The createHex() function has been removed from @erebos/hex, Hex.from() should be used instead.
  • The @erebos/feed-list and @erebos/timeline packages classes now need to be injected a BzzFeed instance.

Bzz packages changes

One goal for Erebos has been to stay quite low-level, at least for the core packages interacting with Swarm.
As the bzz-related packages have been growing over the past releases, it's been time to reconsider how to best organize them:

  • Support for Swarm feeds requires additional dependencies such as @erebos/hex, @erebos/keccak256 and rxjs that can be an additional burden for apps that don't need feeds, so all the feed-related methods have been extracted to the @erebos/bzz-feed package.
  • @erebos/api-bzz-node provided additional methods to interact with the file system. These methods are now provided by the dedicated @erebos/bzz-fs package.
  • The @erebos/bzz package can now be used directly in browsers. However, it does not provide the downloadDirectory() and uploadDirectory() methods added in the @erebos/bzz-browser and @erebos/bzz-node packages.

So what package should you use?

  • If you use node: @erebos/bzz-node
  • Target a browser environment?
    • If you need to use the downloadDirectory() or uploadDirectory() method: @erebos/bzz-browser
    • Otherwise: @erebos/bzz
  • Use React Native?
    • Try the experimental @erebos/bzz-react-native
    • Extend @erebos/bzz as needed
  • For any other environment, try extending @erebos/bzz

If you need to interact with feeds, use @erebos/bzz-feed.

If you want to interact with the file sytem when using node, the @erebos/bzz-fs package provides the utility methods previously implemented in @erebos/api-bzz-node.

New package

The @erebos/doc-sync package has been added, allowing to synchronize JSON documents.

v0.12.0

17 Dec 10:46
Compare
Choose a tag to compare

Breaking change

The Timeline class has been split between the TimelineReader and TimelineWriter classes. TimelineWriter extends TimelineReader and therefore can be used as a dropped-in replacement for Timeline.

Additional features

Other change

HTTP error messages from Swarm are now parsed when possible thanks to Adam Uhlíř's pull request.

New package

The @erebos/feed-list package has been added, implementing lists data structures on top of raw Swarm feeds.

v0.11.0

28 Nov 15:57
Compare
Choose a tag to compare

This release adds support for Readable streams in @erebos/api-bzz-base, thanks to Adam Uhlíř's pull request.

Breaking change

The uploadFileStream() method of @erebos/api-bzz-node has been removed, uploadFile() now supporting streams.

Additional features

Other change

The code base and type definitions have been updated to TypeScript 3.7 thanks to Adam Uhlíř's pull request.

v0.10.0

01 Oct 15:02
Compare
Choose a tag to compare

Breaking changes

Swarm v0.5 support

Erebos v0.10 adds support for 2 new features added to the Swarm v0.5 release:

Pinning content

Tags

It is possible to track progress of chunks spreading over the network using the getTag() and pins() methods of the Bzz class.

New packages

RPC utility libraries that were previously stored in a different repository have now been moved to the Erebos repository and npm organization.

You can learn more about these tools in the added documentation.

v0.9.0

12 Aug 11:14
Compare
Choose a tag to compare

Breaking changes

TypeScript rewrite

The main change in this release is the code base being rewritten in TypeScript. As part of these changes, the library no longer uses ES modules default exports but only named exports, such as:

  • import { Bzz } from '@erebos/api-bzz-node'
  • import { Pss } from '@erebos/api-pss'
  • import { createHex } from '@erebos/hex'

Pss module changes

  • The EMPTY_HEX constant has been renamed to EMPTY_ADDRESS.
  • The sendRaw(), setPeerPublicKey() and setSymmetricKey() methods of the Pss class no longer set a default address value, use EMPTY_ADDRESS if needed.

Browser module namespacing

The @erebos/swarm-browser package now exports its contents in the Erebos.swarm namespace instead of Erebos. For example Erebos.swarm.SwarmClient() should be used instead of Erebos.SwarmClient().
The browser builds (in the dist folder) have been renamed from erebos.development.js and erebos.production.js to erebos.swarm.development.js and erebos.swarm.production.js to better reflect this change.

Additional features

  • The downloadTarTo() method has been added to @erebos/api-bzz-node.
  • The experimental @erebos/api-bzz-react-native has been added by Mark Vujevits in PR #98.

Other changes

  • The sign() and verify() functions exported by the @erebos/secp256k1 package now accept a BNInput input value as exported by the elliptic package.
  • The addChapter() method of the Timeline class now calls createChapter(), so default values for the chapter will be injected.
  • Fixed links to Swarm install & run (by thecryptofruit in PR #108).
  • Docs have been updated to expose TypeScript interfaces rather than Flow types.

v0.8.1

17 Jun 09:25
Compare
Choose a tag to compare
  • Add missing rxjs dependency to @erebos/api-bzz-base package.
  • Fix TypeScript definition for @erebos/api-bzz-base package.

v0.8.0

28 May 13:01
Compare
Choose a tag to compare

Breaking changes

Additional features

Other changes

The library is now tested against Swarm v0.4.0, using the Docker image provided by ethersphere.

v0.7.2

15 Apr 16:50
Compare
Choose a tag to compare

Fix FeedParams type in @erebos/api-bzz-base.