- Notifications
You must be signed in to change notification settings - Fork322
MessagePack serializer implementation for Java / msgpack.org[Java]
License
msgpack/msgpack-java
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
MessagePack is a binary serialization format. If you need a fast and compact alternative of JSON, MessagePack is your friend. For example, a small integer can be encoded in a single byte, and short strings only need a single byte prefix + the original byte array. MessagePack implementation is already available in various languages (See also the list inhttp://msgpack.org) and works as a universal data format.
- Message Pack specification:https://github.com/msgpack/msgpack/blob/master/spec.md
MessagePack v7 (or later) is a faster implementation of the previous versionv06, andsupports all of the message pack types, includingextension format.
JavaDoc is available at javadoc.io.
For Maven users:
<dependency> <groupId>org.msgpack</groupId> <artifactId>msgpack-core</artifactId> <version>(version)</version></dependency>For sbt users:
libraryDependencies += "org.msgpack" % "msgpack-core" % "(version)"For gradle users:
repositories { mavenCentral()}dependencies { compile 'org.msgpack:msgpack-core:(version)'}For using DirectByteBuffer (off-heap memory access methods) in JDK17, you need to specify two JVM options:
--add-opens=java.base/java.nio=ALL-UNNAMED--add-opens=java.base/sun.nio.ch=ALL-UNNAMEDmsgpack-java supports serialization and deserialization of Java objects throughjackson-databind.For details, seemsgpack-jackson/README.md. The template-based serialization mechanism used in v06 is deprecated.
msgpack-java usessbt for building the projects. For the basic usage of sbt, see:
Coding style
- msgpack-java usesthe same coding style with Facebook Presto
- IntelliJ setting file
- Scala test code uses Scalafmt with Scala 3 dialect (always use the latest Scala 3 version)
Enter the sbt console:
$ ./sbtHere 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> ~testOnly *MessagePackTest # Run tests in the specified class> ~testOnly *MessagePackTest -- (pattern) # Run tests matching the pattern > project msgpack-core # Focus on a specific project> package # Create a jar file in the target folder of each project> jcheckStyle # Run check style> scalafmtAll # Format all Scala and sbt code> publishLocal # Install to local .ivy2 repository> publishM2 # Install to local .m2 Maven repository> publish # Publishing a snapshot version to the Sonatype repositoryTo publish a new version, add a new git tag and push it to GitHub. GitHub Action will deploy a new release version to Maven Central (Sonatype).
$ git tag v0.x.y$ git push origin v0.x.y
A new release note will be generated automatically at theGitHub Releases page.
If you need to publish to Maven central using a local machine, you need to configure credentials for Sonatype Central. First 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/1.0/credentials.sbt
credentials += Credentials(Path.userHome / ".sbt" / "sonatype_central_credentials")Then create a credentials file at~/.sbt/sonatype_central_credentials:
host=central.sonatype.comuser=<your username>password=<your password>Alternatively, you can use environment variables:
export SONATYPE_USERNAME=<your username>export SONATYPE_PASSWORD=<your password>
You may also need to configure GPG. See the instruction insbt-pgp.
Then, runpublishSigned followed bysonaRelease:
# [optional] When you need to perform the individual release steps manually, use the following commands:> publishSigned # Publish GPG signed artifacts to the Sonatype repository> sonaRelease # Publish to the Maven Central (It will be synched within less than 4 hours)If some sporadic error happens (e.g., Sonatype timeout), rerunsonaRelease again.
msgpack-core # Contains packer/unpacker implementation that never uses third-party librariesmsgpack-jackson # Contains jackson-dataformat-java implementationAbout
MessagePack serializer implementation for Java / msgpack.org[Java]
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.