avscApache Avro 纯 JavaScript 实现
avsc 是 Apache Avro 的纯 JavaScript 实现。
特性:
完整的 Avro 架构支持,包括递归架构, sort order, 以及 schema evolution.
快速!速度相当于 JSON 的两倍,同时更少的编码(varies per schema).
无依赖,
avsc
甚至可以在浏览器运行
表现:
解码吞吐率的示意图(越高越好):
库比较:
node-avsc
, this package.node-json
, built-in JSON serializer.node-pson
, an alternative to JSON.node-avro-io
, most popular previously existing Avro implementation.
示例:
在一个 node.js 模块,或使用 browserify:
var avsc = require('avsc');
-
编码和解码对象:
// We can declare a schema inline:var type = avsc.parse({ name: 'Pet', type: 'record', fields: [ {name: 'kind', type: {name: 'Kind', type: 'enum', symbols: ['CAT', 'DOG']}}, {name: 'name', type: 'string'} ] });var pet = {kind: 'CAT', name: 'Albert'};var buf = type.toBuffer(pet); // Serialized object.var obj = type.fromBuffer(buf); // {kind: 'CAT', name: 'Albert'}
-
生成一个 schema 的随机实例:
// We can also parse a JSON-stringified schema: var type = avsc.parse('{"type": "fixed", "name": "Id", "size": 4}'); var id = type.random(); // E.g. Buffer([48, 152, 2, 123])
-
检查对象是否符合给定 schema:
// Or we can specify a path to a schema file (not in the browser): var type = avsc.parse('./Person.avsc'); var person = {name: 'Bob', address: {city: 'Cambridge', zip: '02139'}}; var status = type.isValid(person); // Boolean status.
-
从一个 Avro 容器文件(不在浏览器)得到解码记录的readable stream:
avsc.createFileDecoder('./records.avro') .on('metadata', function (type) { /* `type` is the writer's type. */ }) .on('data', function (record) { /* Do something with the record. */ });
评论
纯JavaScript实现HTML5 Canvas 6种特效滤镜
(给前端大学加星标,提升前端技能.)来源: https://www.kancloud.cn/digest/canvas-programming/154008小试牛刀,实现了六款简单常见HTML5 Canvas特效滤镜,并且封装成一个纯JavaScript可调用的API文件gloomyfishf...
前端大学
0
Highcharts纯 Javascript 图表
Highcharts是一个制作图表的纯Javascript类库,主要特性如下:兼容性:兼容当今所有的浏览器,包括iPhone、IE和火狐等等;对个人用户完全免费;纯JS,无BS;支持大部分的图表类型:
Highcharts纯 Javascript 图表
0
GitletGit 的 JavaScript 实现
Gitlet是Git的JavaScript实现。支持init,add,rm,commit,branch,checkout,diff,remote,fetch,merge,push,pull,statu
GitletGit 的 JavaScript 实现
0
GitletGit 的 JavaScript 实现
Gitlet 是 Git 的 JavaScript 实现。支持 init, add, rm, com
GitletGit 的 JavaScript 实现
0
js-base64Base64 的 JavaScript 实现
base64.js是Base64的JavaScript实现。浏览器:<script src="base64.js"></script>node.jsvar Base64 = r
js-base64Base64 的 JavaScript 实现
0