Giter Site home page Giter Site logo

aleclarson / nason Goto Github PK

View Code? Open in Web Editor NEW

This project forked from simonwep/nason

0.0 1.0 0.0 637 KB

๐Ÿ—œ Ultra tiny serializer / encoder with plugin-support. Useful to build binary files containing images, strings, numbers and more!

License: MIT License

JavaScript 4.42% TypeScript 91.12% Shell 4.46%

nason's Introduction

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 โš  No floating-point number support
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.

I'm facing several problems supporting floating-point numbers. PRs 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!

nason's People

Contributors

aleclarson avatar chocolateboy avatar dependabot[bot] avatar simonwep avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.