mirror of
https://github.com/logos-messaging/js-waku.git
synced 2026-01-03 14:23:12 +00:00
### Added - `WakuRelay.deleteObserver` to allow removal of observers, useful when a React component add observers when mounting and needs to delete it when unmounting. - Keep alive feature that pings host regularly, reducing the chance of connections being dropped due to idle. Can be disabled or default frequency (10s) can be changed when calling `Waku.create`. - New `lib/utils` module for easy, dependency-less hex/bytes conversions. - New `peers` and `randomPeer` methods on `WakuStore` and `WakuLightPush` to have a better idea of available peers; Note that it does not check whether Waku node is currently connected to said peers. - Enable passing decryption private keys to `WakuStore.queryHistory`. - Test: Introduce testing in browser environment (Chrome) using Karma. - Add support for Waku Message version 1: Asymmetric encryption, symmetric encryption, and signature of the data. ### Changed - **Breaking**: Auto select peer if none provided for store and light push protocols. - Upgrade to `libp2p@0.31.7` and `libp2p-gossipsub@0.10.0` to avoid `TextEncoder` errors in ReactJS tests. - Disable keep alive by default as latest nim-waku release does not support ping protocol. - **Breaking**: Optional parameters for `WakuMessage.fromBytes` and `WakuMessage.fromUtf8String` are now passed in a single `Options` object. - **Breaking**: `WakuMessage` static functions are now async to allow for encryption and decryption. - **Breaking**: `WakuMessage` constructor is now private, `from*` and `decode*` function should be used. - `WakuMessage` version 1 is partially supported, enabling asymmetrical encryption and signature of messages; this can be done by passing keys to `WakuMessage.from*` and `WakuMessage.decode*` methods. - Examples (eth-dm): Use Waku Message version 1 encryption scheme instead of `eth-crypto`. - Examples (eth-dm): Use Protobuf for direct messages instead of JSON ([#214](https://github.com/status-im/js-waku/issues/214)). ### Fixed - Disable `keepAlive` if set to `0`.
6.2 KiB
6.2 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.8.0 - 2021-07-15
Added
WakuRelay.deleteObserverto allow removal of observers, useful when a React component add observers when mounting and needs to delete it when unmounting.- Keep alive feature that pings host regularly, reducing the chance of connections being dropped due to idle.
Can be disabled or default frequency (10s) can be changed when calling
Waku.create. - New
lib/utilsmodule for easy, dependency-less hex/bytes conversions. - New
peersandrandomPeermethods onWakuStoreandWakuLightPushto have a better idea of available peers; Note that it does not check whether Waku node is currently connected to said peers. - Enable passing decryption private keys to
WakuStore.queryHistory. - Test: Introduce testing in browser environment (Chrome) using Karma.
- Add support for Waku Message version 1: Asymmetric encryption, symmetric encryption, and signature of the data.
Changed
- Breaking: Auto select peer if none provided for store and light push protocols.
- Upgrade to
libp2p@0.31.7andlibp2p-gossipsub@0.10.0to avoidTextEncodererrors in ReactJS tests. - Disable keep alive by default as latest nim-waku release does not support ping protocol.
- Breaking: Optional parameters for
WakuMessage.fromBytesandWakuMessage.fromUtf8Stringare now passed in a singleOptionsobject. - Breaking:
WakuMessagestatic functions are now async to allow for encryption and decryption. - Breaking:
WakuMessageconstructor is now private,from*anddecode*function should be used. WakuMessageversion 1 is partially supported, enabling asymmetrical encryption and signature of messages; this can be done by passing keys toWakuMessage.from*andWakuMessage.decode*methods.- Examples (eth-dm): Use Waku Message version 1 encryption scheme instead of
eth-crypto. - Examples (eth-dm): Use Protobuf for direct messages instead of JSON (#214).
Fixed
- Disable
keepAliveif set to0.
0.7.0 - 2021-06-15
Changed
- Test: Upgrade nim-waku node to v0.4.
- Waku Light Push upgraded to
2.0.0-beta1. - Examples (web chat): Catch error if chat message decoding fails.
- Examples (web chat): Do not send message if shift/alt/ctrl is pressed, enabling multiline messages.
0.6.0 - 2021-06-09
Changed
- Breaking: Websocket protocol is not automatically added anymore if the user specifies a protocol in
libp2p.moduleswhen usingWaku.create. - Breaking: Options passed to
Waku.createused to be passed toLibp2p.create; Now, only thelibp2pproperty is passed toLibp2p.create, allowing for a cleaner interface. - Examples (cli chat): Use tcp protocol instead of websocket.
Added
- Enable access to
WakuMessage.timestamp. - Examples (web chat): Use
WakuMessage.timestampas unique key for list items. - Doc: Link to new topic guidelines in README.
- Doc: Link to Waku v2 Toy Chat specs in README.
- Examples (web chat): Persist nick.
- Support for custom PubSub Topics to
Waku,WakuRelay,WakuStoreandWakuLightPush; Passing a PubSub Topic is optional and still defaults to/waku/2/default-waku/proto; JS-Waku currently supports one, and only, PubSub topic per instance.
0.5.0 - 2021-05-21
Added
- Implement Waku v2 Light Push protocol.
- Expose
Directionenum from js-waku root (it was only accessible via the proto module). - Examples (cli chat): Use light push to send messages if
--lightPushis passed. - Examples (cli chat): Print usage if
--helpis passed.
0.4.0 - 2021-05-18
Added
callbackargument toWakuStore.queryHistory(), called as messages are retrieved ; Messages are retrieved using pagination, and it may take some time to retrieve all messages, with thecallbackfunction, messages are processed as soon as they are received.
Changed
- Testing: Upgrade nim-waku node to v0.3.
- Breaking: Modify
WakuStore.queryHistory()to accept oneObjectinstead of multiple individual arguments. getStatusFleetNodesreturn prod nodes by default, instead of test nodes.- Examples (web chat): Connect to prod fleet by default, test fleet for local development.
- Examples (cli chat): Connect to test fleet by default, use
--prodto connect to prod fleet.
Fixed
- Expose
EnviromentandProtocolenums to pass togetStatusFleetNodes.
0.3.0 - 2021-05-15
Added
getStatusFleetNodesto connect to Status' nim-waku nodes.
Changed
- Clarify content topic format in README.md.
Removed
- Unused dependencies.
0.2.0 - 2021-05-14
Added
WakuRelay.getPeersmethod.- Use
WakuRelay.getPeersin web chat app example to disable send button.
Changed
- Enable passing
strings toaddPeerToAddressBook. - Use
addPeerToAddressBookin examples and usage doc. - Settle on
js-wakuname across the board. - Breaking:
RelayDefaultTopicrenamed toDefaultPubsubTopic.
0.1.0 - 2021-05-12
Added
- Add usage section to the README.
- Support of Waku v2 Relay.
- Support of Waku v2 Store.
- Node Chat App example.
- ReactJS Chat App example.
- Typedoc Documentation.