MessagePack:一种高效二进制序列化格式
MessagePack是一種高效二進制序列化格式。可以在多種語言中進行快速數據交換,比如JSON格式等。這種格式小巧快速,多個小整數會壓縮成一個字節,通常短字符串壓縮后只比原來長度增加1個字節。MessagePack支持超過50種編程語言和環境(完整列表)。
- Message Pack 規范
MessagePack v7比之前的v06更加快速,支持所有的消息封裝格式,包括擴展格式。
快速上手
Maven用戶:
XHTML| 12345 | <dependency>?? <groupId>org.msgpack</groupId>?? <artifactId>msgpack-core</artifactId>?? <version>0.8.2</version></dependency> |
sbt用戶:
| 1 | libraryDependencies += "org.msgpack" % "msgpack-core" % "0.8.2" |
gradle用戶:
| 1234567 | repositories {????mavenCentral()}dependencies {????compile 'org.msgpack:msgpack-core:0.8.2'} |
- 使用示例
通過jackson-databind,msgpack-java支持Java對象的序列化與反序列化。詳細信息可以參見msgpack-jackson/README.md。v06中基于模板的序列化機制已經不推薦使用。
- 發布說明
MessagePack開發
msgpack-java使用sbt構建項目。sbt的基本用法可以參見:
- 使用sbt構建Java項目
編碼風格
- msgpack-java使用與Facebook Presto相同的編碼風格。
- IntelliJ配置文件
基本sbt命令
進入sbt命令行:
Shell| 1 | $ ./sbt |
下面列出了日常開發可能用到的sbt命令列表:
Shell| 12345678910 | > ~compile???????????????????????????????? # 編譯源代碼> ~test:compile????????????????????????????# 編譯源代碼和測試代碼> ~test????????????????????????????????????# 針對代碼變更運行測試> ~test-only *MessagePackTest??????????????# 為指定類運行測試> ~test-only *MessagePackTest -- -n prim?? # 運行帶有"prim"標記的測試> project msgpack-core???????????????????? # 指定項目> package??????????????????????????????????# 為指定目錄下的每個項目創建jar文件> findbugs???????????????????????????????? # 在target/findbugs下生成findbug報告> jacoco:cover???????????????????????????? # 為target/jacoco目錄生成代碼覆蓋率報告> jcheckStyle??????????????????????????????# 執行check style |
發布
Shell| 1234 | > publishLocal????????????# 在本地.ivy2倉庫安裝> publishM2?????????????? # 在本地.m2 Maven倉庫安裝> publishSigned?????????? # 將GPG簽名組件發布到Sonatype倉庫> sonatypeRelease???????? # 發布到Maven中央倉庫(一般4小時內可以實現同步) |
msgpack-java使用sbt-sonatype插件發布到Maven中央倉庫。在全局sbt設置中設置Sonatype賬戶信息(用戶名、密碼)。注意,不要在項目中包含密碼信息文件。
$HOME/.sbt/(sbt-version)/sonatype.sbt
| 1234 | credentials += Credentials("Sonatype Nexus Repository Manager",????????"oss.sonatype.org",????????"(Sonatype user name)",????????"(Sonatype password)") |
項目結構
| 12 | msgpack-core???????????????? # 包含packer/unpacker實現,不適用任何第三方庫msgpack-jackson??????????????# 包含jackson-dataformat-java實現 |
官方網站:http://msgpack.org/
開源地址:https://github.com/msgpack/msgpack-java
from:?http://hao.jobbole.com/messagepack/
總結
以上是生活随笔為你收集整理的MessagePack:一种高效二进制序列化格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java内部类(Inner Class)
- 下一篇: VisualVM——JDK自带的性能分析