Ultra tiny serializer / encoder with plugin-support

栏目: IT技术 · 发布时间: 4年前

内容简介:Disclaimer: This library is part of a bigger project and it's goal is to be as small as possible (I don't want to use the >200kb bundle ofThe name is based on nashorn which is the German word for rhino.

Ultra tiny serializer / encoder with plugin-support

Ultra tiny object serializer

Disclaimer: This library is part of a bigger project and it's 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 :white_check_mark: Fully supported
array :white_check_mark: Fully supported
string :white_check_mark: Fully supported
number No floating-point number support
boolean :white_check_mark: Fully supported
null :white_check_mark: Fully supported

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

I'm facing several problems supporting floating-point numbers. PR's and / or issues with ideas / suggestions are highly appreciated!

Plugins

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

Logo / Icon provided by Icons8 .


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

后谷歌时代:大数据的衰落及区块链经济的崛起

后谷歌时代:大数据的衰落及区块链经济的崛起

乔治·吉尔德 / 现代出版社 / 2018-9-5 / 68

以大数据和机器智能为基础的谷歌时代(信息互联网时代)是一个令人敬畏的时代。但它即将终结。 《后谷歌时代》一书的作者乔治•吉尔德是一位颇具远见卓识的智者。他在技术和文化领域具有无与伦比的视野和见地。他向读者描述了谷歌所面临信任与安全危机,并勇敢地预测了即将到来的后谷歌时代。 谷歌用其惊人的“搜索和排序”能力吸引了整个世界。功能强大的搜索引擎,看似免费小应用,诸如视频、地图、电子邮箱等,让......一起来看看 《后谷歌时代:大数据的衰落及区块链经济的崛起》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具