nason
TypeScript icon, indicating that this package has built-in type declarations

1.3.1 • Public • Published

Logo

Ultra tiny object serializer

gzip size brotli size Coverage Status Build Status Download count No dependencies JSDelivr download count Current version Support me

Disclaimer: This library is part of a bigger project and its goal is to be as small as possible (I don't want to use the >200kb bundle of bson). This lib is only around 4kb, uncompressed. It's only supposed to work within JS itself and not all data-types are implemented so far (see types-table at the bottom).

The name is based on nashorn which is the German word for rhino.

Installation

Install via npm or yarn:

$ npm install nason
# or
$ yarn add nason

Include directly via jsdelivr:

<script src="https://cdn.jsdelivr.net/npm/nason/lib/nason.min.js"></script>

Using JavaScript Modules:

import {...} from 'https://cdn.jsdelivr.net/npm/nason/lib/nason.min.mjs'

Usage

import {deserialize, serialize} from 'nason';

// Serialize something; you'll get a Uint8Array in return.
// You can pass any kind of supported data-type you want to serialize.
const enc = serialize({
    'hello': 'world',
    'number': 13235,
    'array': [1, 2, 3, 'abc']
});

// ... save enc to file or do whatever you want with it

// Deserialize a previously-serialized value
const dec = deserialize(enc);
console.log(dec); // Will be the same as initially passed into serialize

nason exports the following properties and functions:

import {
    deserialize, // Takes a single Uint8Array and decodes it
    serialize, // Takes any supported value and converts it to a Uint8Array
    version // Current version of this package
} from 'nason';

There's even more if you want to develop plugins!

Data-types

Data-type Status
object Fully supported
array Fully supported
string Fully supported
number Fully supported
boolean Fully supported
null Fully supported

undefined is not part of the JSON specification and will throw an error if you try to serialize it.

Plugins

It's possible to write custom encoders for data-types not supported out-of-the-box. Head to plugins to get started!

Package Sidebar

Install

npm i nason

Weekly Downloads

1

Version

1.3.1

License

MIT

Unpacked Size

61.5 kB

Total Files

23

Last publish

Collaborators

  • simonwep