Giter Club home page Giter Club logo

pickleparser's Introduction

Pickle Parser

NPM Version Unit Test Demo License

A pure Javascript implemented parser for Python pickle format

Features

  • Fully supports Pickle protocol version 0~5 opcodes.
  • Pure Typescript implemented.
  • Provides ParserOptions to customize Unpickling.
  • Supports Browser.
  • Supports Node.js.
  • Provides tool to convert pickle file to JSON.

Supported Protocol Version

For more details, see: Supported Opcodes

Demo

Online Pickle to JSON Convertor

Installation

$ npm install pickleparser

Usage

Node.js

import fs from 'node:fs/promises';
import path from 'node:path';
import { Parser } from 'pickleparser';

async function unpickle(fname: string) {
    const pkl = await fs.readFile(path.join(fname), 'binary');
    const buffer = Buffer.from(pkl, 'binary');
    const parser = new Parser();
    return parser.parse(buffer);
}

const obj = await unpickle('pickled.pkl');
console.log(obj);

Browser

const fileSelector = document.getElementById('file_selector');
const jsonResultPreviewer = document.getElementById('json_result_previewer');

fileSelector.addEventListener('change', function (e) {
    const file = fileSelector.files[0];
    const reader = new FileReader();

    reader.onload = function (event) {
        const buffer = new Uint8Array(event.target.result);
        const parser = new pickleparser.Parser();
        const obj = parser.parse(buffer);
        const json = JSON.stringify(obj, null, 4);
        jsonResultPreviewer.innerText = json;
    }

    reader.readAsArrayBuffer(file);
});

Terminal

npx pickleparser file.pkl file.json
# or
npm i pickleparser -g
pickletojson file.pkl file.json

License

MIT

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.