MessagePack for Java
MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves.
- Message Pack specification: https://github.com/msgpack/msgpack/blob/master/spec.md
MessagePack v7 (0.7.x) is a faster implementation of the previous version v06, and supports all of the message pack types, including extended format.
Limitation
- Value API is in a designing phase: msgpack#109
Quick Start
For Maven users:
<dependency>
<groupId>org.msgpack</groupId>
<artifactId>msgpack-core</artifactId>
<version>0.7.0-p7</version>
</dependency>
For sbt users:
libraryDependencies += "org.msgpack" % "msgpack-core" % "0.7.0-p7"
msgpack-java supports serialization and deserialization of Java objects through jackson-databind. For details, see msgpack-jackson/README.md. The template-based serialization mechanism used in v06 is deprecated.
For MessagePack Developers ![Travis CI](https://camo.githubusercontent.com/6ca3edc340f2e9cd3a06b681db5a12965d43a458dc21b438c7cfc611ccc37010/68747470733a2f2f7472617669732d63692e6f72672f6d73677061636b2f6d73677061636b2d6a6176612e7376673f6272616e63683d7630372d646576656c6f70)
msgpack-java uses sbt for building the projects. For the basic usage of sbt, see:
Basic sbt commands
Enter the sbt console:
$ ./sbt
Here is a list of sbt commands for daily development:
> ~compile # Compile source codes
> ~test:compile # Compile both source and test codes
> ~test # Run tests upon source code change
> ~test-only *MessagePackTest # Run tests in the specified class
> ~test-only *MessagePackTest -- -n prim # Run the test tagged as "prim"
> project msgpack-core # Focus on a specific project
> package # Create a jar file in the target folder of each project
> findbugs # Produce findbugs report in target/findbugs
> jacoco:cover # Report the code coverage of tests to target/jacoco folder
Publishing
> publishLocal # Install to local .ivy2 repository
> publishM2 # Install to local .m2 Maven repository
> publishSigned # Publish GPG signed artifacts to the Sonatype repository
> sonatypeRelease # Publish to the Maven Central (It will be synched within less than 4 hours)
For publishing to Maven central, msgpack-java uses sbt-sonatype plugin. Set Sonatype account information (user name and password) in the global sbt settings. To protect your password, never include this file in your project.
$HOME/.sbt/(sbt-version)/sonatype.sbt
credentials += Credentials("Sonatype Nexus Repository Manager",
"oss.sonatype.org",
"(Sonatype user name)",
"(Sonatype password)")
Project Structure
msgpack-core # Contains packer/unpacker implementation that never uses third-party libraries
msgpack-jackson # Contains jackson-dataformat-java implementation