diff --git a/README.md b/README.md index d1ff87c..0e116e8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,45 @@ # bitser -Serializes and deserializes Lua values with LuaJIT. \ No newline at end of file +Serializes and deserializes Lua values with LuaJIT. + + local bitser = require 'bitser' + + bitser.register('someResource', someResource) + bitser.registerClass(SomeClass) + + serializedData = bitser.dumps(someData) + someData = bitser.loads(serializedData) + +Pull requests, bug reports and other feedback welcome! :heart: + +## 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](https://github.com/bakpakin/binser), which is great. + +## How do I use the benchmark thingy? + +Download zero or more of [binser.lua](https://github.com/bakpakin/binser/master/binser.lua), +[ser.lua](https://github.com.com/gvx/Ser/master/ser.lua), +[smallfolk.lua](https://github.com/gvx/Smallfolk/raw/master/smallfolk.lua) and +[serpent.lua](https://github.com/pkulchenko/serpent/raw/master/src/serpent.lua), and run: + + love . + +You do need [LÖVE](https://love2d.org/) 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 and Slither (and +probably some other class libraries by accident). + +## What license is this under? + +None yet. It will be open source (probably MIT license) in the near future, but it +needs more testing before it's production ready.