Socket
Socket
Sign inDemoInstall

@protobufjs/float

Package Overview
Dependencies
0
Maintainers
2
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Protect your apps from supply chain attacks

Install

@protobufjs/float

Reads / writes floats / doubles from / to buffers in both modern and ancient browsers.

    1.0.2latest
    GitHub
    npm

Version published
Maintainers
2
Weekly downloads
11,883,819
increased by5.84%

Weekly downloads

Readme

Source

@protobufjs/float

npm

Reads / writes floats / doubles from / to buffers in both modern and ancient browsers. Fast.

API

  • writeFloatLE(val: number, buf: Uint8Array, pos: number)
    Writes a 32 bit float to a buffer using little endian byte order.

  • writeFloatBE(val: number, buf: Uint8Array, pos: number)
    Writes a 32 bit float to a buffer using big endian byte order.

  • readFloatLE(buf: Uint8Array, pos: number): number
    Reads a 32 bit float from a buffer using little endian byte order.

  • readFloatBE(buf: Uint8Array, pos: number): number
    Reads a 32 bit float from a buffer using big endian byte order.

  • writeDoubleLE(val: number, buf: Uint8Array, pos: number)
    Writes a 64 bit double to a buffer using little endian byte order.

  • writeDoubleBE(val: number, buf: Uint8Array, pos: number)
    Writes a 64 bit double to a buffer using big endian byte order.

  • readDoubleLE(buf: Uint8Array, pos: number): number
    Reads a 64 bit double from a buffer using little endian byte order.

  • readDoubleBE(buf: Uint8Array, pos: number): number
    Reads a 64 bit double from a buffer using big endian byte order.

Performance

There is a simple benchmark included comparing raw read/write performance of this library (float), float's fallback for old browsers, the ieee754 module and node's buffer. On an i7-2600k running node 6.9.1 it yields:

benchmarking writeFloat performance ...

float x 42,741,625 ops/sec ±1.75% (81 runs sampled)
float (fallback) x 11,272,532 ops/sec ±1.12% (85 runs sampled)
ieee754 x 8,653,337 ops/sec ±1.18% (84 runs sampled)
buffer x 12,412,414 ops/sec ±1.41% (83 runs sampled)
buffer (noAssert) x 13,471,149 ops/sec ±1.09% (84 runs sampled)

                      float was fastest
           float (fallback) was 73.5% slower
                    ieee754 was 79.6% slower
                     buffer was 70.9% slower
          buffer (noAssert) was 68.3% slower

benchmarking readFloat performance ...

float x 44,382,729 ops/sec ±1.70% (84 runs sampled)
float (fallback) x 20,925,938 ops/sec ±0.86% (87 runs sampled)
ieee754 x 17,189,009 ops/sec ±1.01% (87 runs sampled)
buffer x 10,518,437 ops/sec ±1.04% (83 runs sampled)
buffer (noAssert) x 11,031,636 ops/sec ±1.15% (87 runs sampled)

                      float was fastest
           float (fallback) was 52.5% slower
                    ieee754 was 61.0% slower
                     buffer was 76.1% slower
          buffer (noAssert) was 75.0% slower

benchmarking writeDouble performance ...

float x 38,624,906 ops/sec ±0.93% (83 runs sampled)
float (fallback) x 10,457,811 ops/sec ±1.54% (85 runs sampled)
ieee754 x 7,681,130 ops/sec ±1.11% (83 runs sampled)
buffer x 12,657,876 ops/sec ±1.03% (83 runs sampled)
buffer (noAssert) x 13,372,795 ops/sec ±0.84% (85 runs sampled)

                      float was fastest
           float (fallback) was 73.1% slower
                    ieee754 was 80.1% slower
                     buffer was 67.3% slower
          buffer (noAssert) was 65.3% slower

benchmarking readDouble performance ...

float x 40,527,888 ops/sec ±1.05% (84 runs sampled)
float (fallback) x 18,696,480 ops/sec ±0.84% (86 runs sampled)
ieee754 x 14,074,028 ops/sec ±1.04% (87 runs sampled)
buffer x 10,092,367 ops/sec ±1.15% (84 runs sampled)
buffer (noAssert) x 10,623,793 ops/sec ±0.96% (84 runs sampled)

                      float was fastest
           float (fallback) was 53.8% slower
                    ieee754 was 65.3% slower
                     buffer was 75.1% slower
          buffer (noAssert) was 73.8% slower

To run it yourself:

$> npm run bench

License: BSD 3-Clause License

FAQs

Last updated on 02 Apr 2017

Did you know?

Socket installs a GitHub app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc