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)
serializedData = love.filesystem.newFileData("filename")
someValue = bitser.loadData(serializedData:getPointer(), serializedData:getSize())
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).
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.
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!
Yes. At the moment, bitser supports MiddleClass, SECL, hump.class and Slither (and probably some other class libraries by accident).