{"id":15031441,"url":"https://github.com/msgpack/msgpack-java","last_synced_at":"2025-05-14T22:06:34.717Z","repository":{"id":37768919,"uuid":"1971346","full_name":"msgpack/msgpack-java","owner":"msgpack","description":"MessagePack serializer implementation for Java / msgpack.org[Java]","archived":false,"fork":false,"pushed_at":"2025-02-11T01:55:08.000Z","size":3695,"stargazers_count":1436,"open_issues_count":60,"forks_count":322,"subscribers_count":86,"default_branch":"main","last_synced_at":"2025-05-07T21:58:50.465Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://msgpack.org/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/msgpack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-06-29T08:45:39.000Z","updated_at":"2025-05-02T20:09:05.000Z","dependencies_parsed_at":"2023-09-24T03:09:29.564Z","dependency_job_id":"a7087f33-be91-4065-820f-06d9e97134ec","html_url":"https://github.com/msgpack/msgpack-java","commit_stats":{"total_commits":1516,"total_committers":60,"mean_commits":"25.266666666666666","dds":0.6728232189973615,"last_synced_commit":"84fd19761feeb5ec073ed238fb00498bd04994bd"},"previous_names":[],"tags_count":67,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msgpack%2Fmsgpack-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msgpack%2Fmsgpack-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msgpack%2Fmsgpack-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msgpack%2Fmsgpack-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msgpack","download_url":"https://codeload.github.com/msgpack/msgpack-java/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235695,"owners_count":22036963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T20:15:41.427Z","updated_at":"2025-05-14T22:06:34.685Z","avatar_url":"https://github.com/msgpack.png","language":"Java","readme":"MessagePack for Java \n=== \n\n[MessagePack](http://msgpack.org) 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 in http://msgpack.org) and works as a universal data format.\n\n * Message Pack specification: \u003chttps://github.com/msgpack/msgpack/blob/master/spec.md\u003e\n\nMessagePack v7 (or later) is a faster implementation of the previous version [v06](https://github.com/msgpack/msgpack-java/tree/v06), and\nsupports all of the message pack types, including [extension format](https://github.com/msgpack/msgpack/blob/master/spec.md#formats-ext).\n\n[JavaDoc is available at javadoc.io](https://www.javadoc.io/doc/org.msgpack/msgpack-core).\n\n## Quick Start\n\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.msgpack/msgpack-core/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.msgpack/msgpack-core/)\n[![Javadoc](https://javadoc.io/badge/org.msgpack/msgpack-core.svg)](https://www.javadoc.io/doc/org.msgpack/msgpack-core)\n\nFor Maven users:\n```\n\u003cdependency\u003e\n   \u003cgroupId\u003eorg.msgpack\u003c/groupId\u003e\n   \u003cartifactId\u003emsgpack-core\u003c/artifactId\u003e\n   \u003cversion\u003e(version)\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nFor sbt users:\n```\nlibraryDependencies += \"org.msgpack\" % \"msgpack-core\" % \"(version)\"\n```\n\nFor gradle users:\n```\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    compile 'org.msgpack:msgpack-core:(version)'\n}\n```\n\n- [Usage examples](https://github.com/msgpack/msgpack-java/blob/develop/msgpack-core/src/test/java/org/msgpack/core/example/MessagePackExample.java)\n\n### Java 17 Support\n\nFor using DirectByteBuffer (off-heap memory access methods) in JDK17, you need to specify two JVM options:\n```\n--add-opens=java.base/java.nio=ALL-UNNAMED\n--add-opens=java.base/sun.nio.ch=ALL-UNNAMED\n```\n\n\n### Integration with Jackson ObjectMapper (jackson-databind)\n\nmsgpack-java supports serialization and deserialization of Java objects through [jackson-databind](https://github.com/FasterXML/jackson-databind).\nFor details, see [msgpack-jackson/README.md](https://github.com/msgpack/msgpack-java/blob/develop/msgpack-jackson/README.md). The template-based serialization mechanism used in v06 is deprecated.\n\n- [Release Notes](https://github.com/msgpack/msgpack-java/blob/develop/RELEASE_NOTES.md)\n\n## For MessagePack Developers [![Travis CI](https://travis-ci.org/msgpack/msgpack-java.svg?branch=v07-develop)](https://travis-ci.org/msgpack/msgpack-java)\n\nmsgpack-java uses [sbt](http://www.scala-sbt.org/) for building the projects. For the basic usage of sbt, see:\n * [Building Java projects with sbt](http://xerial.org/blog/2014/03/24/sbt/)\n\nCoding style\n * msgpack-java uses [the same coding style](https://github.com/airlift/codestyle) with Facebook Presto\n  * [IntelliJ setting file](https://raw.githubusercontent.com/airlift/codestyle/master/IntelliJIdea14/Airlift.xml)\n\n### Basic sbt commands\nEnter the sbt console:\n```\n$ ./sbt\n```\n\nHere is a list of sbt commands for daily development:\n```\n\u003e ~compile                                 # Compile source codes\n\u003e ~test:compile                            # Compile both source and test codes\n\u003e ~test                                    # Run tests upon source code change\n\u003e ~testOnly *MessagePackTest               # Run tests in the specified class\n\u003e ~testOnly *MessagePackTest -- (pattern)  # Run tests matching the pattern \n\u003e project msgpack-core                     # Focus on a specific project\n\u003e package                                  # Create a jar file in the target folder of each project\n\u003e jcheckStyle                              # Run check style\n\u003e scalafmtAll                              # Reformat code\n```\n\n### Publishing\n\n```\n\u003e publishLocal            # Install to local .ivy2 repository\n\u003e publishM2               # Install to local .m2 Maven repository\n\u003e publish                 # Publishing a snapshot version to the Sonatype repository\n```\n\n### Publish to Sonatype (Maven Central)\n\nTo 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).\n\n```scala\n$ git tag v0.x.y\n$ git push origin v0.x.y\n```\n\nA new release note will be generated automatically at the [GitHub Releases](https://github.com/msgpack/msgpack-java/releases) page. \n\n#### Publishing to Sonatype from Local Machine\n\nIf you need to publish to Maven central using a local machine, you need to configure [sbt-sonatype](https://github.com/xerial/sbt-sonatype) plugin. 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.\n\n___$HOME/.sbt/(sbt-version)/sonatype.sbt___\n\n```\ncredentials += Credentials(\"Sonatype Nexus Repository Manager\",\n        \"oss.sonatype.org\",\n        \"(Sonatype user name)\",\n        \"(Sonatype password)\")\n```\n\nYou may also need to configure GPG. See the instruction in [sbt-pgp](https://github.com/sbt/sbt-pgp).\n\nThen, run `publishedSigned` followed by `sonatypeBundleRelease`:\n```\n# [optional] When you need to perform the individual release steps manually, use the following commands:\n\u003e publishSigned           # Publish GPG signed artifacts to the Sonatype repository\n\u003e sonatypeBundleRelease   # Publish to the Maven Central (It will be synched within less than 4 hours)\n```\n\nIf some sporadic error happens (e.g., Sonatype timeout), rerun `sonatypeBundleRelease` again.\n\n### Project Structure\n\n```\nmsgpack-core                 # Contains packer/unpacker implementation that never uses third-party libraries\nmsgpack-jackson              # Contains jackson-dataformat-java implementation\n```\n","funding_links":[],"categories":["Projects","Solutions","I. Development","项目","Serialization"],"sub_categories":["Serialization","6. Useful libraries","序列化"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsgpack%2Fmsgpack-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsgpack%2Fmsgpack-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsgpack%2Fmsgpack-java/lists"}