Conversation
Describes the changes in the v3 release of js-libp2p
|
|
||
| Prior to v2 of libp2p, streams were [streaming iterables](https://gist.github.com/alanshaw/591dc7dd54e4f99338a347ef568d6ee9). This convention involves an object with `source` and `sink` properties - the `source` is an [AsyncIterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncIterator) which yields data received by the stream, and `source` is an async function that accepts an iterator (sync or async) and returns a promise that resolves when the passed iterator finishes and all bytes have been written into an underlying resource, or rejects if an error is encountered before this occurs. | ||
|
|
||
| This interaction pattern has not been adopted outside the libp2p project and it's surrounding ecosystem which raises the bar for new developers, and it also leans heavily on promises which can introduce a [surprising amount of latency](https://github.com/ChainSafe/js-libp2p-gossipsub/pull/361) to seemingly simple operations. |
There was a problem hiding this comment.
[LanguageTool] reported by reviewdog 🐶
Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE[1])
Suggestions: , and
URL: https://languagetool.org/insights/post/types-of-sentences/#compound-sentence
Rule: https://community.languagetool.org/rule/show/COMMA_COMPOUND_SENTENCE?lang=en-US&subId=1
Category: PUNCTUATION
| }) | ||
|
|
||
| // protocol handlers had to be synchronous | ||
| node.handle('/my/protocol', ({ stream, connection }) => { |
There was a problem hiding this comment.
[LanguageTool] reported by reviewdog 🐶
Unpaired symbol: ‘'’ seems to be missing (EN_UNPAIRED_QUOTES)
URL: https://languagetool.org/insights/post/punctuation-guide/#what-are-parentheses
Rule: https://community.languagetool.org/rule/show/EN_UNPAIRED_QUOTES?lang=en-US
Category: PUNCTUATION
|
|
||
| // protocol handlers had to be synchronous | ||
| node.handle('/my/protocol', ({ stream, connection }) => { | ||
| Promise.resolve().then(async () => { |
There was a problem hiding this comment.
[LanguageTool] reported by reviewdog 🐶
The verb ‘await’ seems to be in the wrong form here. (FOR_VB[1])
Suggestions: for awaiting
Rule: https://community.languagetool.org/rule/show/FOR_VB?lang=en-US&subId=1
Category: GRAMMAR
| }) | ||
|
|
||
| // topology callbacks had to be synchronous | ||
| node.register('/my/protocol', { |
There was a problem hiding this comment.
[LanguageTool] reported by reviewdog 🐶
Unpaired symbol: ‘'’ seems to be missing (EN_UNPAIRED_QUOTES)
URL: https://languagetool.org/insights/post/punctuation-guide/#what-are-parentheses
Rule: https://community.languagetool.org/rule/show/EN_UNPAIRED_QUOTES?lang=en-US
Category: PUNCTUATION
| }) | ||
|
|
||
| // protocol handlers can now return promises | ||
| node.handle('/my/protocol', async (stream, connection) => { |
There was a problem hiding this comment.
[LanguageTool] reported by reviewdog 🐶
Unpaired symbol: ‘'’ seems to be missing (EN_UNPAIRED_QUOTES)
URL: https://languagetool.org/insights/post/punctuation-guide/#what-are-parentheses
Rule: https://community.languagetool.org/rule/show/EN_UNPAIRED_QUOTES?lang=en-US
Category: PUNCTUATION
| }) | ||
|
|
||
| // protocol handlers can now return promises | ||
| node.handle('/my/protocol', async (stream, connection) => { |
There was a problem hiding this comment.
[LanguageTool] reported by reviewdog 🐶
The verb ‘await’ seems to be in the wrong form here. (FOR_VB[1])
Suggestions: for awaiting
Rule: https://community.languagetool.org/rule/show/FOR_VB?lang=en-US&subId=1
Category: GRAMMAR
| }) | ||
|
|
||
| // topology callbacks can now return promises | ||
| node.register('/my/protocol', { |
There was a problem hiding this comment.
[LanguageTool] reported by reviewdog 🐶
Unpaired symbol: ‘'’ seems to be missing (EN_UNPAIRED_QUOTES)
URL: https://languagetool.org/insights/post/punctuation-guide/#what-are-parentheses
Rule: https://community.languagetool.org/rule/show/EN_UNPAIRED_QUOTES?lang=en-US
Category: PUNCTUATION
Describes the changes in the v3 release of js-libp2p