Giter VIP home page Giter VIP logo

node-buffalo's Introduction

Project Inactive

I am no longer have the time to work on this project. Feel free to fork!

Buffalo

Buffalo is a lightweight BSON and Mongo Wire Protocol library for Node.js. It was built as the underlying engine for Mongolian DeadBeef.

The motivation is to make a fast and simple parser and serializer for BSON.

Build Status

Installation

DISCLAIMER: The API is experimental. I will be adding, removing, and changing the API in the interest of a solid API. Use at your own risk

You can either clone the source and install with npm link, or install the latest published version from npm with npm install buffalo.

Running Tests

Run the tests with npm test.

API

Buffalo exposes two methods:

exports.parse = function(buffer) { ... }
exports.serialize = function(object) { ... }

And several types:

exports.Long // goog.math.Long - http://closure-library.googlecode.com/svn/docs/class_goog_math_Long.html
exports.ObjectId = function(buffer) // buffer must be a 12-byte Buffer, accessible via the bytes property
exports.ObjectId = function(string) // string must be a 24-char hex string
exports.ObjectId = function(number) // generate an ObjectId from a timestamp number
exports.ObjectId = function(date)   // generate an ObjectId from a date
exports.ObjectId = function() // generates an ObjectId
exports.Timestamp // under construction

The BSON types are mapped as follows:

  • 0x01 - Floating point - mapped to Number
  • 0x02 - UTF-8 string - mapped to String
  • 0x03 - Embedded document - mapped to Object
  • 0x04 - Array - mapped to Array
  • 0x05 - Binary data - mapped to Node.js Buffer (with property subtype)
  • 0x06 - Undefined - mapped to undefined
  • 0x07 - ObjectId - mapped to exports.ObjectId
  • 0x08 - Boolean - mapped to true or false
  • 0x09 - UTC datetime - mapped to Date
  • 0x0A - Null value - mapped to null
  • 0x0B - Regular expression - mapped to RegExp (Note: only flags g, i, and m are supported)
  • 0x0C - DBPointer - currently unmapped
  • 0x0D - JavaScript code - mapped to Function or Object with property code
  • 0x0E - Symbol - mapped to String
  • 0x0F - JavaScript code w/ scope - mapped to Function or Object with properties code and scope
  • 0x10 - 32-bit Integer - mapped to Number
  • 0x11 - Timestamp - mapped to exports.Timestamp
  • 0x12 - 64-bit integer - mapped to exports.Long
  • 0xFF - Min key - currently unmapped
  • 0x7F - Max key - currently unmapped

Examples

var BSON = require('buffalo')

// Parse a Buffer
var object = BSON.parse(buffer)

// Serialize an object
var buffer = BSON.serialize(object)

Contributing

Try it out and send me feedback! Unit tests and documentation are good, too.

License

Buffalo is open source software under the zlib license.

node-buffalo's People

Contributors

marcello3d avatar yorkie avatar marsup avatar pablo-merino avatar rashfael avatar

Watchers

 avatar James Cloos avatar  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.