This is an automated email from the ASF dual-hosted git repository.
chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fury.git
The following commit(s) were added to refs/heads/main by this push:
new 0189c933 chore: bump release version to 0.9.0 (#1940)
0189c933 is described below
commit 0189c93390ef12b5b089084d1150fa885ec5dafd
Author: Shawn Yang <[email protected]>
AuthorDate: Sun Nov 10 19:37:56 2024 +0800
chore: bump release version to 0.9.0 (#1940)
## What does this PR do?
bump release version to 0.9.0
## Related issues
<!--
Is there any related issue? Please attach here.
- #xxxx0
- #xxxx1
- #xxxx2
-->
## Does this PR introduce any user-facing change?
<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fury/issues/new/choose) describing the
need to do so and update the document if necessary.
-->
- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?
## Benchmark
<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
---
README.md | 25 ++++++++++----
docs/guide/scala_guide.md | 40 ++++++++++++++---------
integration_tests/graalvm_tests/pom.xml | 2 +-
integration_tests/jdk_compatibility_tests/pom.xml | 2 +-
integration_tests/jpms_tests/pom.xml | 2 +-
integration_tests/latest_jdk_tests/pom.xml | 4 +--
java/benchmark/pom.xml | 2 +-
java/fury-core/pom.xml | 2 +-
java/fury-format/pom.xml | 2 +-
java/fury-test-core/pom.xml | 2 +-
java/fury-testsuite/pom.xml | 2 +-
java/pom.xml | 2 +-
javascript/packages/fury/package.json | 2 +-
javascript/packages/hps/package.json | 2 +-
kotlin/README.md | 24 ++++++++++++++
kotlin/pom.xml | 2 +-
python/pyfury/__init__.py | 2 +-
rust/Cargo.toml | 2 +-
scala/build.sbt | 2 +-
19 files changed, 83 insertions(+), 40 deletions(-)
diff --git a/README.md b/README.md
index 9ae4e875..29b8e11b 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@
## Features
-- **Multiple languages**:
Java/Python/C++/Golang/JavaScript/Rust/Scala/TypeScript.
+- **Multiple languages**:
Java/Python/C++/Golang/JavaScript/Rust/Scala/Kotlin/TypeScript.
- **Zero-copy**: Cross-language out-of-band serialization inspired
by [pickle5](https://peps.python.org/pep-0574/) and off-heap read/write.
- **High performance**: A highly-extensible JIT framework to generate
serializer code at runtime in an async multi-thread way to speed serialization,
providing 20-170x speed up by:
@@ -38,6 +38,7 @@ In addition to cross-language serialization, Fury also
features at:
- Supports [AOT compilation serialization](docs/guide/graalvm_guide.md) for
**GraalVM native image**, and no reflection/serialization json config are
needed.
- Supports shared and circular reference object serialization for golang.
- Supports [scala serialization](docs/guide/scala_guide.md)
+- Supports [Kotlin serialization](kotlin/README.md)
- Supports automatic object serialization for golang.
## Protocols
@@ -108,13 +109,13 @@ Nightly snapshot:
<dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-core</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
</dependency>
<!-- row/arrow format support -->
<!-- <dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-format</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
</dependency> -->
```
@@ -124,13 +125,13 @@ Release version:
<dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-core</artifactId>
- <version>0.8.0</version>
+ <version>0.9.0</version>
</dependency>
<!-- row/arrow format support -->
<!-- <dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-format</artifactId>
- <version>0.8.0</version>
+ <version>0.9.0</version>
</dependency> -->
```
@@ -139,13 +140,23 @@ Release version:
Scala2:
```sbt
-libraryDependencies += "org.apache.fury" % "fury-scala_2.13" % "0.8.0"
+libraryDependencies += "org.apache.fury" % "fury-scala_2.13" % "0.9.0"
```
Scala3:
```sbt
-libraryDependencies += "org.apache.fury" % "fury-scala_3" % "0.8.0"
+libraryDependencies += "org.apache.fury" % "fury-scala_3" % "0.9.0"
+```
+
+### Kotlin
+
+```xml
+<dependency>
+ <groupId>org.apache.fury</groupId>
+ <artifactId>fury-kotlin</artifactId>
+ <version>0.9.0</version>
+</dependency>
```
### Python
diff --git a/docs/guide/scala_guide.md b/docs/guide/scala_guide.md
index 83efd1b4..51ef4f03 100644
--- a/docs/guide/scala_guide.md
+++ b/docs/guide/scala_guide.md
@@ -19,13 +19,34 @@ Scala 2 and 3 are both supported.
To add a dependency on Fury scala for scala 2 with sbt, use the following:
```sbt
-libraryDependencies += "org.apache.fury" % "fury-scala_2.13" % "0.8.0"
+libraryDependencies += "org.apache.fury" % "fury-scala_2.13" % "0.9.0"
```
To add a dependency on Fury scala for scala 3 with sbt, use the following:
```sbt
-libraryDependencies += "org.apache.fury" % "fury-scala_3" % "0.8.0"
+libraryDependencies += "org.apache.fury" % "fury-scala_3" % "0.9.0"
+```
+
+## Quict Start
+
+```scala
+case class Person(name: String, id: Long, github: String)
+case class Point(x : Int, y : Int, z : Int)
+
+object ScalaExample {
+ val fury: Fury = Fury.builder().withScalaOptimizationEnabled(true).build()
+ // Register optimized fury serializers for scala
+ ScalaSerializers.registerSerializers(fury)
+ fury.register(classOf[Person])
+ fury.register(classOf[Point])
+
+ def main(args: Array[String]): Unit = {
+ val p = Person("Shawn Yang", 1, "https://github.com/chaokunyang")
+ println(fury.deserialize(fury.serialize(p)))
+ println(fury.deserialize(fury.serialize(Point(1, 2, 3))))
+ }
+}
```
## Fury creation
@@ -35,29 +56,16 @@ When using fury for scala serialization, you should create
fury at least with fo
```scala
import org.apache.fury.Fury
import org.apache.fury.serializer.scala.ScalaSerializers
-import
org.apache.fury.serializer.collection.CollectionSerializers.DefaultJavaCollectionSerializer
-val fury = Fury.builder()
- .withScalaOptimizationEnabled(true)
- .requireClassRegistration(true)
- .withRefTracking(true)
- .build()
+val fury = Fury.builder().withScalaOptimizationEnabled(true).build()
// Register optimized fury serializers for scala
ScalaSerializers.registerSerializers(fury)
-// serialize range as (start, step, end) instead of collection
-// this will be handled in next version automatically.
-fury.registerSerializer(classOf[Range.Inclusive],
classOf[DefaultJavaCollectionSerializer])
-fury.registerSerializer(classOf[Range.Exclusive],
classOf[DefaultJavaCollectionSerializer])
-fury.registerSerializer(classOf[NumericRange],
classOf[DefaultJavaCollectionSerializer])
-fury.registerSerializer(classOf[NumericRange.Inclusive],
classOf[DefaultJavaCollectionSerializer])
-fury.registerSerializer(classOf[NumericRange.Exclusive],
classOf[DefaultJavaCollectionSerializer])
```
Depending on the object types you serialize, you may need to register some
scala internal types:
```scala
-fury.register(Class.forName("scala.collection.generic.DefaultSerializationProxy"))
fury.register(Class.forName("scala.Enumeration.Val"))
```
diff --git a/integration_tests/graalvm_tests/pom.xml
b/integration_tests/graalvm_tests/pom.xml
index f0680425..851c2fdd 100644
--- a/integration_tests/graalvm_tests/pom.xml
+++ b/integration_tests/graalvm_tests/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.fury</groupId>
<artifactId>fury-parent</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
<relativePath>../../java</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/integration_tests/jdk_compatibility_tests/pom.xml
b/integration_tests/jdk_compatibility_tests/pom.xml
index 9ee31e81..510c7614 100644
--- a/integration_tests/jdk_compatibility_tests/pom.xml
+++ b/integration_tests/jdk_compatibility_tests/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.fury</groupId>
<artifactId>fury-parent</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
<relativePath>../../java</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/integration_tests/jpms_tests/pom.xml
b/integration_tests/jpms_tests/pom.xml
index 1b11d462..403d9d5e 100644
--- a/integration_tests/jpms_tests/pom.xml
+++ b/integration_tests/jpms_tests/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.fury</groupId>
<artifactId>fury-parent</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
<relativePath>../../java</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/integration_tests/latest_jdk_tests/pom.xml
b/integration_tests/latest_jdk_tests/pom.xml
index 548a0c1e..a2ecf698 100644
--- a/integration_tests/latest_jdk_tests/pom.xml
+++ b/integration_tests/latest_jdk_tests/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.fury</groupId>
<artifactId>fury-parent</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
<relativePath>../../java</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -71,4 +71,4 @@
</plugins>
</build>
-</project>
\ No newline at end of file
+</project>
diff --git a/java/benchmark/pom.xml b/java/benchmark/pom.xml
index 5ba993ae..e8687183 100644
--- a/java/benchmark/pom.xml
+++ b/java/benchmark/pom.xml
@@ -26,7 +26,7 @@
<parent>
<artifactId>fury-parent</artifactId>
<groupId>org.apache.fury</groupId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
</parent>
<artifactId>benchmark</artifactId>
diff --git a/java/fury-core/pom.xml b/java/fury-core/pom.xml
index ad984f8e..dd5484aa 100644
--- a/java/fury-core/pom.xml
+++ b/java/fury-core/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.fury</groupId>
<artifactId>fury-parent</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/java/fury-format/pom.xml b/java/fury-format/pom.xml
index ff2489f3..6e55c8fb 100644
--- a/java/fury-format/pom.xml
+++ b/java/fury-format/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.fury</groupId>
<artifactId>fury-parent</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/java/fury-test-core/pom.xml b/java/fury-test-core/pom.xml
index 002f381b..c5791d3f 100644
--- a/java/fury-test-core/pom.xml
+++ b/java/fury-test-core/pom.xml
@@ -25,7 +25,7 @@
<parent>
<artifactId>fury-parent</artifactId>
<groupId>org.apache.fury</groupId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/java/fury-testsuite/pom.xml b/java/fury-testsuite/pom.xml
index 29309663..6c86b4c4 100644
--- a/java/fury-testsuite/pom.xml
+++ b/java/fury-testsuite/pom.xml
@@ -25,7 +25,7 @@
<parent>
<artifactId>fury-parent</artifactId>
<groupId>org.apache.fury</groupId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/java/pom.xml b/java/pom.xml
index 7384eeb8..e1691b23 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -33,7 +33,7 @@
<groupId>org.apache.fury</groupId>
<artifactId>fury-parent</artifactId>
<packaging>pom</packaging>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
<name>Fury Project Parent POM</name>
<description>
Apache Fury™ is a blazingly fast multi-language serialization framework
powered by jit and zero-copy.
diff --git a/javascript/packages/fury/package.json
b/javascript/packages/fury/package.json
index 1960f3f2..810709ad 100644
--- a/javascript/packages/fury/package.json
+++ b/javascript/packages/fury/package.json
@@ -1,6 +1,6 @@
{
"name": "@furyjs/fury",
- "version": "0.9.0.dev",
+ "version": "0.10.0.dev",
"description": "Apache Fury™(incubating) is a blazingly fast multi-language
serialization framework powered by jit and zero-copy",
"main": "dist/index.js",
"scripts": {
diff --git a/javascript/packages/hps/package.json
b/javascript/packages/hps/package.json
index ba5c9f88..ffd529d4 100644
--- a/javascript/packages/hps/package.json
+++ b/javascript/packages/hps/package.json
@@ -1,6 +1,6 @@
{
"name": "@furyjs/hps",
- "version": "0.9.0.dev",
+ "version": "0.10.0.dev",
"description": "Apache Fury™(incubating) nodejs high-performance suite",
"main": "dist/index.js",
"files": [
diff --git a/kotlin/README.md b/kotlin/README.md
index a70dd9bd..849b0992 100644
--- a/kotlin/README.md
+++ b/kotlin/README.md
@@ -36,6 +36,30 @@ Additional Notes:
- wrappers classes created from `withDefault` method is currently not
supported.
+## Quick Start
+
+```kotlin
+import org.apache.fury.Fury
+import org.apache.fury.ThreadSafeFury
+import org.apache.fury.serializer.kotlin.KotlinSerializers
+
+data class Person(val name: String, val id: Long, val github: String)
+data class Point(val x : Int, val y : Int, val z : Int)
+
+fun main(args: Array<String>) {
+ // Note: following fury init code should be executed only once in a global
scope instead
+ // of initializing it everytime when serialization.
+ val fury: ThreadSafeFury =
Fury.builder().requireClassRegistration(true).buildThreadSafeFury()
+ KotlinSerializers.registerSerializers(fury)
+ fury.register(Person::class.java)
+ fury.register(Point::class.java)
+
+ val p = Person("Shawn Yang", 1, "https://github.com/chaokunyang")
+ println(fury.deserialize(fury.serialize(p)))
+ println(fury.deserialize(fury.serialize(Point(1, 2, 3))))
+}
+```
+
## Building Fury Kotlin
```bash
diff --git a/kotlin/pom.xml b/kotlin/pom.xml
index 3c60c9a8..abe64121 100644
--- a/kotlin/pom.xml
+++ b/kotlin/pom.xml
@@ -30,7 +30,7 @@
<groupId>org.apache.fury</groupId>
<artifactId>fury-kotlin</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.10.0-SNAPSHOT</version>
<modelVersion>4.0.0</modelVersion>
<properties>
diff --git a/python/pyfury/__init__.py b/python/pyfury/__init__.py
index 71480da0..c4396421 100644
--- a/python/pyfury/__init__.py
+++ b/python/pyfury/__init__.py
@@ -71,4 +71,4 @@ try:
except (AttributeError, ImportError):
pass
-__version__ = "0.9.0.dev"
+__version__ = "0.10.0.dev"
diff --git a/rust/Cargo.toml b/rust/Cargo.toml
index fe8d4da0..6b9302af 100644
--- a/rust/Cargo.toml
+++ b/rust/Cargo.toml
@@ -30,7 +30,7 @@ exclude = [
resolver = "2"
[workspace.package]
-version = "0.9.0"
+version = "0.10.0"
rust-version = "1.70"
license = "Apache-2.0"
readme = "README.md"
diff --git a/scala/build.sbt b/scala/build.sbt
index cb291645..69b1cec4 100644
--- a/scala/build.sbt
+++ b/scala/build.sbt
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-val furyVersion = "0.9.0-SNAPSHOT"
+val furyVersion = "0.10.0-SNAPSHOT"
val scala213Version = "2.13.15"
ThisBuild / apacheSonatypeProjectProfile := "fury"
version := furyVersion
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]