Socket
Socket
Sign inDemoInstall

sofa-hessian-node

Package Overview
Dependencies
Maintainers
5
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sofa-hessian-node

An internal improved version of Hessian powered by Ant Financial.


Version published
Weekly downloads
325
increased by93.45%
Maintainers
5
Weekly downloads
 
Created
Source

sofa-hessian-node

蚂蚁金服对 Hessian 序列化的定制版本

NPM version build status Test coverage David deps Known Vulnerabilities npm download

sofa-hessian-node 对应的 Java Hessian 版本是 v3.1.3。它对 hessian.js-1 模块做了进一步封装,通过预编译来提高性能。

安装

$ npm install sofa-hessian-node --save

示例

'use strict';

// classMap 是要序列化类的定义
const classMap = {
  'com.alipay.test.sub.TestObj2': {
    name: {
      type: 'java.lang.String',
    },
    transientField: {
      type: 'java.lang.String',
      isTransient: true,
    },
    finalField: {
      type: 'java.lang.String',
      defaultValue: 'xxx',
    },
    staticField: {
      type: 'java.lang.String',
      isStatic: true,
    },
  },
};

const encode = require('sofa-hessian-node').encode;

const buf = encode({
  $class: 'com.alipay.test.sub.TestObj2',
  $: { name: 'gxcsoccer' },
}, '2.0', classMap);

console.log(buf.toString('hex'));
// 4fac636f6d2e616c697061792e746573742e7375622e546573744f626a3292046e616d650a66696e616c4669656c646f9009677863736f6363657203787878

hessian 4 支持

const { v4 } = require('sofa-hessian-node');

const buf = v4.encode({
  $class: 'com.alipay.test.sub.TestObj2',
  $: { name: 'gxcsoccer' },
}, '2.0', classMap);

console.log(buf.toString('hex'));

性能数据

benchmark 看,相比于直接使用 hessian.js-1,sofa-hessian-node 性能有非常明显的提高(特别是针对复杂对象的场景)

  node version: v10.0.0, date: Wed Jun 27 2018 23:17:47 GMT+0800 (CST)
  Starting...
  4 tests completed.

  hessian old - 1.0 x  47,719 ops/sec ±2.57% (86 runs sampled)
  hessian new - 1.0 x 246,812 ops/sec ±2.76% (87 runs sampled)
  hessian old - 2.0 x  78,132 ops/sec ±2.49% (84 runs sampled)
  hessian new - 2.0 x 372,090 ops/sec ±2.99% (87 runs sampled)

如何贡献

请告知我们可以为你做些什么,不过在此之前,请检查一下是否有已经存在的Bug或者意见

如果你是一个代码贡献者,请参考代码贡献规范

开源协议

MIT

Keywords

FAQs

Package last updated on 28 Jul 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc