New implementation with no external dependencies
This removes the dependency on the MessagePack Java libraries in favour of a rewritten encoder and decoder that was made especially for JRuby.
The non-standard extensions that were in msgpack-jruby v1.x have not been implemented (automatic key symbolization and tagging of encodings).
There are a few things remaning before this is a candidate for a v2.0 release:
- [ ] Verify that this implements all of the new MessagePack spec, and does it correctly (for some definition of correct, the spec is what the spec is).
- [ ] The Ruby MessagePack gem has gotten tests, make sure we pass those.
- [ ] Decide which versions of JRuby to support and make sure it runs on those.
- [ ] Run it through some stress tests to see that there's no remaining edge cases.
- [x] Decide on whether or not the extensions should be ported.
- [x] Decide whether or not to support the
#to_msgpackconvention from the Ruby version. - [x] Decide whether or not to submit this as a PR to the Ruby MessagePack project instead of making a 2.0
Meh, forgot that the Ruby MessagePack gem had changed its API (not the top level #pack and #unpack, but the MessagePack::Unpacker is different and there's a MessagePack::Packer, too).
This is now a PR to msgpack-ruby, see msgpack/msgpack-ruby#33. It will have #to_msgpack (otherwise we can't merge), and extensions will not be ported (because msgpack-ruby does not support them).