(ON HOLD) Pop.Box is an easy to use GUI library for the LÖVE engine, intended for rapid prototyping.
Go to file
Paul Liverman III fc95d6251d Squashed 'src/lib/bitser/' content from commit e7480da
git-subtree-dir: src/lib/bitser
git-subtree-split: e7480da28e507bed62e93ca7b5a1239cfb14d016
2017-10-10 00:15:20 -07:00
cases Squashed 'src/lib/bitser/' content from commit e7480da 2017-10-10 00:15:20 -07:00
spec Squashed 'src/lib/bitser/' content from commit e7480da 2017-10-10 00:15:20 -07:00
.travis.yml Squashed 'src/lib/bitser/' content from commit e7480da 2017-10-10 00:15:20 -07:00
bitser.lua Squashed 'src/lib/bitser/' content from commit e7480da 2017-10-10 00:15:20 -07:00
conf.lua Squashed 'src/lib/bitser/' content from commit e7480da 2017-10-10 00:15:20 -07:00
main.lua Squashed 'src/lib/bitser/' content from commit e7480da 2017-10-10 00:15:20 -07:00
README.md Squashed 'src/lib/bitser/' content from commit e7480da 2017-10-10 00:15:20 -07:00
USAGE.md Squashed 'src/lib/bitser/' content from commit e7480da 2017-10-10 00:15:20 -07:00

bitser

Build Status Coverage Status

Serializes and deserializes Lua values with LuaJIT.

local bitser = require 'bitser'

bitser.register('someResource', someResource)
bitser.registerClass(SomeClass)

serializedString = bitser.dumps(someValue)
someValue = bitser.loads(serializedString)

Documentation can be found in USAGE.md.

Pull requests, bug reports and other feedback welcome! ❤️

Bitser is released under the ISC license (functionally equivalent to the BSD 2-Clause and MIT licenses).

Please note that bitser requires LuaJIT for its ffi library and JIT compilation. Without JIT, it may or may not run, but it will be much slower than usual. This primarily affects Android and iOS, because JIT is disabled on those platforms.

Why would I use this?

Because it's fast. Because it produces tiny output. Because the name means "snappier" or "unfriendlier" in Dutch. Because it's safe to use with untrusted data.

Because it's inspired by binser, which is great.

How do I use the benchmark thingy?

Download zero or more of binser.lua, ser.lua, smallfolk.lua, serpent.lua and MessagePack.lua, and run:

love .

You do need LÖVE for that.

You can add more cases in the folder cases/ (check out _new.lua), and add other serializers to the benchmark in main.lua. If you do either of those things, please send me a pull request!

You can register classes?

Yes. At the moment, bitser supports MiddleClass, SECL, hump.class, Slither and Moonscript classes (and probably some other class libraries by accident).