Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/toyobayashi/chromium-pickle-js
Binary value packing and unpacking
https://github.com/toyobayashi/chromium-pickle-js
Last synced: 2 days ago
JSON representation
Binary value packing and unpacking
- Host: GitHub
- URL: https://github.com/toyobayashi/chromium-pickle-js
- Owner: toyobayashi
- Created: 2021-09-18T09:12:27.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-09-18T09:17:50.000Z (about 3 years ago)
- Last Synced: 2024-05-02T02:06:34.222Z (6 months ago)
- Language: TypeScript
- Size: 14.6 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# chromium-pickle-js
Fork from [electron/node-chromium-pickle-js](https://github.com/electron/node-chromium-pickle-js) to support browser.
[API Documentation](https://github.com/toyobayashi/chromium-pickle-js/blob/main/docs/api/index.md)
This module ports Chromium's `Pickle` class to Node and browser, see `Pickle`'s header for
introduction:> This class provides facilities for basic binary value packing and unpacking.
>
> The Pickle class supports appending primitive values (ints, strings, etc.)
> to a pickle instance. The Pickle instance grows its internal memory buffer
> dynamically to hold the sequence of primitive values. The internal memory
> buffer is exposed as the "data" of the Pickle. This "data" can be passed
> to a Pickle object to initialize it for reading.
>
> When reading from a Pickle object, it is important for the consumer to know
> what value types to read and in what order to read them as the Pickle does
> not keep track of the type of data written to it.
>
> The Pickle's data has a header which contains the size of the Pickle's
> payload. It can optionally support additional space in the header. That
> space is controlled by the header_size parameter passed to the Pickle
> constructor.## Install
```bash
$ npm install @tybys/chromium-pickle-js
```## Usage
### createEmpty()
Returns an empty `Pickle` object.
### createFromBuffer(buffer)
* `buffer` Buffer
Returns a `Pickle` object that initialized from a `buffer`. The data is not
copied so you have to ensure the `buffer` lives when using the Pickle object,
and you should never modify the Pickle object created this way.### Pickle.createIterator()
Returns a `PickleIterator` object that can be used to read data from this
`Pickle` object.### Pickle.toBuffer()
Returns a `Buffer` object that contains this `Pickle` object's data.
### Pickle.writeBool(value)
Writes `value` to `Pickle` object as `bool`. Returns `true` when succeeded and
returns `false` when failed.### Pickle.writeInt(value)
Writes `value` to `Pickle` object as `int`. Returns `true` when succeeded and
returns `false` when failed.### Pickle.writeUInt32(value)
Writes `value` to `Pickle` object as `uint32`. Returns `true` when succeeded and
returns `false` when failed.### Pickle.writeInt64(value)
Writes `value` to `Pickle` object as `int64`. Returns `true` when succeeded and
returns `false` when failed.### Pickle.writeUInt64(value)
Writes `value` to `Pickle` object as `uint64`. Returns `true` when succeeded and
returns `false` when failed.### Pickle.writeFloat(value)
Writes `value` to `Pickle` object as `float`. Returns `true` when succeeded and
returns `false` when failed.### Pickle.writeDouble(value)
Writes `value` to `Pickle` object as `Double`. Returns `true` when succeeded and
returns `false` when failed.### Pickle.writeString(str)
* `str` String
Writes `str` to `Pickle` object. Returns `true` when succeeded and returns
`false` when failed.### PickleIterator.readBool()
Returns current value as `bool` and seeks to next data. A`TypeError` exception
would be thrown when failed.### PickleIterator.readInt()
Returns current value as `int` and seeks to next data. A`TypeError` exception
would be thrown when failed.### PickleIterator.readUInt32()
Returns current value as `uint32` and seeks to next data. A`TypeError` exception
would be thrown when failed.### PickleIterator.readInt64()
Returns current value as `int64` and seeks to next data. A`TypeError` exception
would be thrown when failed.### PickleIterator.readUInt64()
Returns current value as `uint64` and seeks to next data. A`TypeError` exception
would be thrown when failed.### PickleIterator.readFloat()
Returns current value as `float` and seeks to next data. A`TypeError` exception
would be thrown when failed.### PickleIterator.readDouble()
Returns current value as `double` and seeks to next data. A`TypeError` exception
would be thrown when failed.### PickleIterator.readString()
Returns current value as `String` and seeks to next data. A`TypeError` exception
would be thrown when failed.