From 6abcd22fac48d5b2ed5c3973c28229c5d22ebdd7 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Wed, 16 Aug 2023 12:31:29 +0100 Subject: [PATCH] deps: switch varint for uint8-varint (#1973) It's faster and is used elsewhere saving us a dep. --- packages/kad-dht/package.json | 5 ++--- packages/kad-dht/src/providers.ts | 4 ++-- packages/libp2p/package.json | 1 - packages/multistream-select/package.json | 5 ++--- .../test/multistream.spec.ts | 18 +++++++++--------- packages/peer-record/package.json | 1 - packages/peer-record/src/envelope/index.ts | 8 ++++---- packages/stream-multiplexer-mplex/package.json | 5 ++--- .../stream-multiplexer-mplex/src/encode.ts | 8 ++++---- 9 files changed, 25 insertions(+), 30 deletions(-) diff --git a/packages/kad-dht/package.json b/packages/kad-dht/package.json index 0a128e65b7..4024e2905f 100644 --- a/packages/kad-dht/package.json +++ b/packages/kad-dht/package.json @@ -83,9 +83,9 @@ "private-ip": "^3.0.0", "progress-events": "^1.0.0", "protons-runtime": "^5.0.0", + "uint8-varint": "^2.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.6", - "varint": "^6.0.0" + "uint8arrays": "^4.0.6" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^4.0.3", @@ -93,7 +93,6 @@ "@libp2p/peer-store": "^9.0.3", "@types/lodash.random": "^3.2.6", "@types/lodash.range": "^3.2.6", - "@types/varint": "^6.0.0", "@types/which": "^3.0.0", "aegir": "^40.0.8", "datastore-level": "^10.0.0", diff --git a/packages/kad-dht/src/providers.ts b/packages/kad-dht/src/providers.ts index c90180edff..5323df49bc 100644 --- a/packages/kad-dht/src/providers.ts +++ b/packages/kad-dht/src/providers.ts @@ -3,8 +3,8 @@ import { peerIdFromString } from '@libp2p/peer-id' import cache from 'hashlru' import { Key } from 'interface-datastore/key' import Queue from 'p-queue' +import * as varint from 'uint8-varint' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' -import varint from 'varint' import { PROVIDERS_CLEANUP_INTERVAL, PROVIDERS_VALIDITY, @@ -245,7 +245,7 @@ async function writeProviderEntry (store: Datastore, cid: CID, peer: PeerId, tim ].join('') const key = new Key(dsKey) - const buffer = Uint8Array.from(varint.encode(time.getTime())) + const buffer = varint.encode(time.getTime()) await store.put(key, buffer) } diff --git a/packages/libp2p/package.json b/packages/libp2p/package.json index 228212942f..72f11b93a1 100644 --- a/packages/libp2p/package.json +++ b/packages/libp2p/package.json @@ -180,7 +180,6 @@ "@libp2p/mplex": "^9.0.3", "@libp2p/tcp": "^8.0.3", "@libp2p/websockets": "^7.0.3", - "@types/varint": "^6.0.0", "@types/xsalsa20": "^1.1.0", "aegir": "^40.0.8", "delay": "^6.0.0", diff --git a/packages/multistream-select/package.json b/packages/multistream-select/package.json index 696b42b413..90248337a5 100644 --- a/packages/multistream-select/package.json +++ b/packages/multistream-select/package.json @@ -63,17 +63,16 @@ "it-pushable": "^3.2.0", "it-reader": "^6.0.1", "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" }, "devDependencies": { - "@types/varint": "^6.0.0", "aegir": "^40.0.8", "iso-random-stream": "^2.0.2", "it-all": "^3.0.1", "it-map": "^3.0.3", "it-pair": "^2.0.6", - "p-timeout": "^6.0.0", - "varint": "^6.0.0" + "p-timeout": "^6.0.0" } } diff --git a/packages/multistream-select/test/multistream.spec.ts b/packages/multistream-select/test/multistream.spec.ts index e02d88b9f8..db6282c9e3 100644 --- a/packages/multistream-select/test/multistream.spec.ts +++ b/packages/multistream-select/test/multistream.spec.ts @@ -5,10 +5,10 @@ import { expect } from 'aegir/chai' import all from 'it-all' import { pushable } from 'it-pushable' import { reader } from 'it-reader' +import * as varint from 'uint8-varint' import { Uint8ArrayList } from 'uint8arraylist' import { concat as uint8ArrayConcat } from 'uint8arrays/concat' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' -import * as Varint from 'varint' import * as Multistream from '../src/multistream.js' describe('Multistream', () => { @@ -18,7 +18,7 @@ describe('Multistream', () => { const output = Multistream.encode(input) const expected = uint8ArrayConcat([ - Uint8Array.from(Varint.encode(input.length + 1)), // +1 to include newline + varint.encode(input.length + 1), // +1 to include newline input, uint8ArrayFromString('\n') ]) @@ -31,7 +31,7 @@ describe('Multistream', () => { const output = Multistream.encode(input.slice()) const expected = uint8ArrayConcat([ - Uint8Array.from(Varint.encode(input.length + 1)), // +1 to include newline + varint.encode(input.length + 1), // +1 to include newline input.slice(), uint8ArrayFromString('\n') ]) @@ -48,7 +48,7 @@ describe('Multistream', () => { Multistream.write(writer, input) const expected = uint8ArrayConcat([ - Uint8Array.from(Varint.encode(input.length + 1)), // +1 to include newline + varint.encode(input.length + 1), // +1 to include newline input, uint8ArrayFromString('\n') ]) @@ -66,7 +66,7 @@ describe('Multistream', () => { const input = uint8ArrayFromString(`TEST${Date.now()}`) const source = reader([uint8ArrayConcat([ - Uint8Array.from(Varint.encode(input.length + 1)), // +1 to include newline + varint.encode(input.length + 1), // +1 to include newline input, uint8ArrayFromString('\n') ])]) @@ -79,7 +79,7 @@ describe('Multistream', () => { const input = uint8ArrayFromString(`TEST${Date.now()}`) const source = reader([uint8ArrayConcat([ - Uint8Array.from(Varint.encode(input.length)), + varint.encode(input.length), input ])]) @@ -92,7 +92,7 @@ describe('Multistream', () => { input[input.length - 1] = '\n'.charCodeAt(0) const source = reader([uint8ArrayConcat([ - Uint8Array.from(Varint.encode(input.length)), + varint.encode(input.length), input ])]) @@ -104,7 +104,7 @@ describe('Multistream', () => { const input = new Uint8Array(0) const source = reader([uint8ArrayConcat([ - Uint8Array.from(Varint.encode(input.length)), + varint.encode(input.length), input ])]) @@ -116,7 +116,7 @@ describe('Multistream', () => { const input = uint8ArrayFromString(`TEST${Date.now()}`) const source = reader([uint8ArrayConcat([ - Uint8Array.from(Varint.encode(input.length + 1)), // +1 to include newline + varint.encode(input.length + 1), // +1 to include newline input, uint8ArrayFromString('\n') ])]) diff --git a/packages/peer-record/package.json b/packages/peer-record/package.json index 4c88c7d0c3..f1a3c3ce77 100644 --- a/packages/peer-record/package.json +++ b/packages/peer-record/package.json @@ -67,7 +67,6 @@ }, "devDependencies": { "@libp2p/peer-id-factory": "^3.0.3", - "@types/varint": "^6.0.0", "aegir": "^40.0.8", "protons": "^7.0.2" } diff --git a/packages/peer-record/src/envelope/index.ts b/packages/peer-record/src/envelope/index.ts index 3506932b8c..15714daa4e 100644 --- a/packages/peer-record/src/envelope/index.ts +++ b/packages/peer-record/src/envelope/index.ts @@ -1,7 +1,7 @@ import { unmarshalPrivateKey, unmarshalPublicKey } from '@libp2p/crypto/keys' import { CodeError } from '@libp2p/interface/errors' import { peerIdFromKeys } from '@libp2p/peer-id' -import * as unsigned from 'uint8-varint' +import * as varint from 'uint8-varint' import { Uint8ArrayList } from 'uint8arraylist' import { equals as uint8ArrayEquals } from 'uint8arrays/equals' import { fromString as uint8arraysFromString } from 'uint8arrays/from-string' @@ -147,9 +147,9 @@ const formatSignaturePayload = (domain: string, payloadType: Uint8Array, payload // - The value of the payload field const domainUint8Array = uint8arraysFromString(domain) - const domainLength = unsigned.encode(domainUint8Array.byteLength) - const payloadTypeLength = unsigned.encode(payloadType.length) - const payloadLength = unsigned.encode(payload.length) + const domainLength = varint.encode(domainUint8Array.byteLength) + const payloadTypeLength = varint.encode(payloadType.length) + const payloadLength = varint.encode(payload.length) return new Uint8ArrayList( domainLength, diff --git a/packages/stream-multiplexer-mplex/package.json b/packages/stream-multiplexer-mplex/package.json index 50c40c5c47..c5761790cc 100644 --- a/packages/stream-multiplexer-mplex/package.json +++ b/packages/stream-multiplexer-mplex/package.json @@ -64,13 +64,12 @@ "it-pushable": "^3.2.0", "it-stream-types": "^2.0.1", "rate-limiter-flexible": "^2.3.11", + "uint8-varint": "^2.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.6", - "varint": "^6.0.0" + "uint8arrays": "^4.0.6" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^4.0.3", - "@types/varint": "^6.0.0", "aegir": "^40.0.8", "cborg": "^2.0.1", "delay": "^6.0.0", diff --git a/packages/stream-multiplexer-mplex/src/encode.ts b/packages/stream-multiplexer-mplex/src/encode.ts index 9dc5194fdd..c80da107e1 100644 --- a/packages/stream-multiplexer-mplex/src/encode.ts +++ b/packages/stream-multiplexer-mplex/src/encode.ts @@ -1,6 +1,6 @@ import batchedBytes from 'it-batched-bytes' +import * as varint from 'uint8-varint' import { Uint8ArrayList } from 'uint8arraylist' -import varint from 'varint' import { allocUnsafe } from './alloc-unsafe.js' import { type Message, MessageTypes } from './message-types.js' import type { Source } from 'it-stream-types' @@ -24,16 +24,16 @@ class Encoder { let offset = this._poolOffset varint.encode(msg.id << 3 | msg.type, pool, offset) - offset += varint.encode.bytes ?? 0 + offset += varint.encodingLength(msg.id << 3 | msg.type) if ((msg.type === MessageTypes.NEW_STREAM || msg.type === MessageTypes.MESSAGE_INITIATOR || msg.type === MessageTypes.MESSAGE_RECEIVER) && msg.data != null) { varint.encode(msg.data.length, pool, offset) + offset += varint.encodingLength(msg.data.length) } else { varint.encode(0, pool, offset) + offset += varint.encodingLength(0) } - offset += varint.encode.bytes ?? 0 - const header = pool.subarray(this._poolOffset, offset) if (POOL_SIZE - offset < 100) {