![KryoNet](https://raw.github.com/wiki/EsotericSoftware/kryo/images/logo.jpg)
[![Build Status](https://github.com/EsotericSoftware/kryo/actions/workflows/ci-workflow.yml/badge.svg)](https://github.com/EsotericSoftware/kryo/actions/workflows/ci-workflow.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.esotericsoftware/kryo/badge.svg)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.esotericsoftware%22%20AND%20a%3Akryo)
[![Join the chat at https://gitter.im/EsotericSoftware/kryo](https://badges.gitter.im/EsotericSoftware/kryo.svg)](https://gitter.im/EsotericSoftware/kryo)
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/kryo.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:kryo)
Kryo is a fast and efficient binary object graph serialization framework for Java. The goals of the project are high speed, low size, and an easy to use API. The project is useful any time objects need to be persisted, whether to a file, database, or over the network.
Kryo can also perform automatic deep and shallow copying/cloning. This is direct copying from object to object, not object to bytes to object.
This documentation is for Kryo version 5.x. See [the Wiki](https://github.com/EsotericSoftware/kryo/wiki/Kryo-v4) for version 4.x.
## Contact / Mailing list
Please use the [Kryo mailing list](https://groups.google.com/forum/#!forum/kryo-users) for questions, discussions, and support. Please limit use of the Kryo issue tracker to bugs and enhancements, not questions, discussions, or support.
## Table of contents
- [Recent releases](#recent-releases)
- [Installation](#installation)
* [With Maven](#with-maven)
* [Without Maven](#without-maven)
* [Building from source](#building-from-source)
- [Quickstart](#quickstart)
- [IO](#io)
* [Output](#output)
* [Input](#input)
* [ByteBuffers](#bytebuffers)
* [Unsafe buffers](#unsafe-buffers)
* [Variable length encoding](#variable-length-encoding)
* [Chunked encoding](#chunked-encoding)
* [Buffer performance](#buffer-performance)
- [Reading and writing objects](#reading-and-writing-objects)
* [Round trip](#round-trip)
* [Deep and shallow copies](#deep-and-shallow-copies)
* [References](#references)
+ [ReferenceResolver](#referenceresolver)
+ [Reference limits](#reference-limits)
* [Context](#context)
* [Reset](#reset)
- [Serializer framework](#serializer-framework)
* [Registration](#registration)
+ [ClassResolver](#classresolver)
+ [Optional registration](#optional-registration)
* [Default serializers](#default-serializers)
+ [Serializer factories](#serializer-factories)
* [Object creation](#object-creation)
+ [InstantiatorStrategy](#instantiatorstrategy)
+ [Overriding create](#overriding-create)
* [Final classes](#final-classes)
* [Closures](#closures)
* [Compression and encryption](#compression-and-encryption)
- [Implementing a serializer](#implementing-a-serializer)
* [Serializer references](#serializer-references)
+ [Nested serializers](#nested-serializers)
+ [KryoException](#kryoexception)
+ [Stack size](#stack-size)
* [Accepting null](#accepting-null)
* [Generics](#generics)
* [KryoSerializable](#kryoserializable)
* [Serializer copying](#serializer-copying)
+ [KryoCopyable](#kryocopyable)
+ [Immutable serializers](#immutable-serializers)
- [Kryo versioning and upgrading](#kryo-versioning-and-upgrading)
- [Interoperability](#interoperability)
- [Compatibility](#compatibility)
- [Serializers](#serializers)
* [FieldSerializer](#fieldserializer)
+ [CachedField settings](#cachedfield-settings)
+ [FieldSerializer annotations](#fieldserializer-annotations)
* [VersionFieldSerializer](#versionfieldserializer)
* [TaggedFieldSerializer](#taggedfieldserializer)
* [CompatibleFieldSerializer](#compatiblefieldserializer)
* [BeanSerializer](#beanserializer)
* [CollectionSerializer](#collectionserializer)
* [MapSerializer](#mapserializer)
* [JavaSerializer and ExternalizableSerializer](#javaserializer-and-externalizableserializer)
- [Logging](#logging)
- [Thread safety](#thread-safety)
* [Pooling](#pooling)
- [Benchmarks](#benchmarks)
- [Links](#links)
* [Projects using Kryo](#projects-using-kryo)
* [Scala](#scala)
* [Clojure](#clojure)
* [Objective-C](#objective-c)
## Recent releases
* [4.0.3](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-4.0.3) - brings bug fixes and performance improvements for chunked encoding.
* [5.5.0](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-5.5.0) - brings bug fixes and performance improvements.
* [5.4.0](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-5.4.0) - brings bug fixes and performance improvements.
* [5.3.0](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-5.3.0) - brings bug fixes and performance improvements.
* [5.2.1](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-5.2.1) - brings minor bug fixes and improvements.
* [5.2.0](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-5.2.0) - brings bug fixes for `RecordSerializer` and improvements. Important: If you are currently storing serialized `java.util.Record`, please see the [release notes](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-5.2.0) for upgrade instructions.
* [5.1.1](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-5.1.1) - brings bug fixes for `CompatibleFieldSerializer` and removes dependency from versioned artifact
* [5.1.0](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-5.1.0) - brings support for `java.util.Record` and improved support for older Android versions
* [5.0.0](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-5.0.0) - the final Kryo 5 release fixing many issues and making many long awaited improvements over Kryo 4. Note: For libraries (not applications) using Kryo, there's now a completely self-contained, versioned artifact (for details see [installation](#installation)). For migration from Kryo 4.x see also [Migration to v5](https://github.com/EsotericSoftware/kryo/wiki/Migration-to-v5).
## Installation
Kryo publishes two kinds of artifacts/jars:
* the default jar (with the usual library dependencies) which is meant for direct usage in applications (not libraries)
* a dependency-free, "versioned" jar which should be used by other libraries. Different libraries shall be able to use different major versions of Kryo.
Kryo JARs are available on the [releases page](https://github.com/EsotericSoftware/kryo/releases) and at [Maven Central](https://search.maven.org/#search|gav|1|g%3Acom.esotericsoftware%20a%3Akryo). The latest snapshots of Kryo, including snapshot builds of master, are in the [Sonatype Repository](https://oss.sonatype.org/content/repositories/snapshots/com/esotericsoftware/kryo/).
### With Maven
To use the latest Kryo release in your application, use this dependency entry in your `pom.xml`:
```xml
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>5.5.0</version>
</dependency>
```
To use the latest Kryo release in a library you want to publish, use this dependency entry in your `pom.xml`:
```xml
<dependency>
<groupId>com.esotericsoftware.kryo</groupId>
<artifactId>kryo5</artifactId>
<version>5.5.0</version>
</dependency>
```
To use the latest Kryo snapshot, use:
```xml
<repository>
<id>sonatype-snapshots</id>
<name>sonatype snapshots repo</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
<!-- for usage in an application: -->
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>5.5.1-SNAPSHOT</version>
</dependency>
<!-- for usage in a library that should be published: -->
<dependency
没有合适的资源?快使用搜索试试~ 我知道了~
kryo java语言编写的高效的二进制对象图形序列化框架
共217个文件
java:133个
html:30个
jar:13个
需积分: 5 0 下载量 101 浏览量
2023-11-22
14:06:45
上传
评论
收藏 8.91MB ZIP 举报
温馨提示
Kryo是一个高效的二进制对象图形序列化框架,主要针对Java语言进行设计。它的主要目标是提供高速、低内存占用以及简单易用的API,以便为Java对象提供持久化的能力,包括持久化为文件、数据库或网络传输。 Kryo的性能相当出色,与Google的protobuf并列为高效的序列化库。此外,除了Java之外,基于JVM的语言如Scala和Kotlin也可以使用Kryo实现序列化。
资源推荐
资源详情
资源评论
收起资源包目录
kryo java语言编写的高效的二进制对象图形序列化框架 (217个子文件)
.classpath 1KB
.factorypath 537B
.gitignore 236B
compat_report.html 1.06MB
compat_report.html 578KB
compat_report.html 393KB
compat_report.html 189KB
compat_report.html 183KB
compat_report.html 92KB
compat_report.html 77KB
compat_report.html 65KB
compat_report.html 47KB
compat_report.html 40KB
compat_report.html 34KB
compat_report.html 32KB
compat_report.html 30KB
compat_report.html 29KB
compat_report.html 27KB
compat_report.html 25KB
compat_report.html 24KB
compat_report.html 23KB
compat_report.html 21KB
compat_report.html 14KB
compat_report.html 13KB
compat_report.html 13KB
compat_report.html 13KB
compat_report.html 13KB
compat_report.html 12KB
compat_report.html 12KB
compat_report.html 12KB
compat_report.html 12KB
compat_report.html 12KB
compat_report.html 11KB
.importorder 175B
byte-buddy-1.12.7.jar 3.64MB
junit-platform-console-standalone-1.8.2.jar 2.3MB
commons-math3-3.2.jar 1.61MB
jmh-core-1.21.jar 501KB
kryo-2.22.jar 432KB
kryo-2.23.0.jar 317KB
commons-lang-2.6.jar 278KB
reflectasm-1.11.9.jar 71KB
jopt-simple-4.6.jar 61KB
commons-cli-1.3.1.jar 52KB
objenesis-3.2.jar 48KB
jmh-generator-annprocess-1.21.jar 30KB
minlog-1.3.1.jar 6KB
Kryo.java 58KB
InputOutputTest.java 42KB
FieldSerializerTest.java 40KB
DefaultSerializers.java 40KB
Input.java 36KB
Output.java 35KB
UnsafeByteBufferInputOutputTest.java 34KB
UnsafeInputOutputTest.java 33KB
ByteBufferInput.java 30KB
ByteBufferOutput.java 27KB
CompatibleFieldSerializerTest.java 27KB
CuckooObjectMap.java 23KB
DefaultSerializersTest.java 22KB
IntMap.java 21KB
ObjectMap.java 21KB
FieldSerializer.java 20KB
ObjectIntMap.java 19KB
CachedFields.java 18KB
GenericsTest.java 17KB
SerializationCompatTestData.java 16KB
ReflectField.java 14KB
IntArray.java 13KB
TaggedFieldSerializer.java 12KB
DefaultArraySerializers.java 12KB
RecordSerializerTest.java 12KB
Util.java 12KB
CompatibleFieldSerializer.java 12KB
FieldSerializerBenchmark.java 12KB
TaggedFieldSerializerTest.java 12KB
TimeSerializers.java 12KB
MapSerializer.java 11KB
SerializationCompatTest.java 11KB
CollectionSerializer.java 11KB
ReflectionAssert.java 11KB
KryoTestCase.java 10KB
RecordSerializer.java 10KB
SerializationBenchmarkTest.java 10KB
Generics.java 10KB
MapSerializerTest.java 10KB
UnsafeByteBufferOutput.java 9KB
BeanSerializer.java 9KB
UnsafeByteBufferInput.java 9KB
DefaultClassResolver.java 8KB
FieldSerializerGenericsTest.java 8KB
MapBenchmark.java 8KB
SerializerFactory.java 8KB
UnsafeField.java 8KB
Pool.java 8KB
AsmField.java 7KB
Sample.java 7KB
ImmutableCollectionsSerializers.java 7KB
UnsafeInput.java 7KB
UnsafeOutput.java 7KB
共 217 条
- 1
- 2
- 3
资源评论
不才hm
- 粉丝: 31
- 资源: 63
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240528_103010.jpg
- 基于Python的新能源承载力计算及界面设计源码 - HAINING-DG
- 基于Java的本科探索学习项目设计源码 - 本科探索
- 基于Javascript和Python的微商城项目设计源码 - MicroMall
- 基于Java的网上订餐系统设计源码 - online ordering system
- 基于Javascript的超级美眉网络资源管理应用模块设计源码
- 基于Typescript和PHP的编程知识储备库设计源码 - study-php
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
- 基于Dart的Flutter小提琴调音器APP设计源码 - violinhelper
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功