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-site.git
The following commit(s) were added to refs/heads/main by this push:
new 97ee43a4 release fury 0.9.0 (#200)
97ee43a4 is described below
commit 97ee43a4108d16f02935bba5de04bf844c83253e
Author: Shawn Yang <[email protected]>
AuthorDate: Sun Nov 10 16:35:32 2024 +0800
release fury 0.9.0 (#200)
---
blog/2024-10-04-fury_0_8_0_release.md | 6 +-
blog/2024-11-10-fury_0_9_0_release.md | 75 ++++++++++++++++++++++
docs/guide/scala_guide.md | 4 +-
docs/start/install.md | 24 +++++--
docs/start/usage.md | 48 ++++++++++++++
.../current/guide/java_serialization_guide.md | 2 +-
.../current/start/install.md | 24 +++++--
.../current/start/usage.md | 45 +++++++++++++
src/pages/download/index.md | 10 +--
src/pages/home/components/HomePageLanguageCard.tsx | 10 ++-
10 files changed, 223 insertions(+), 25 deletions(-)
diff --git a/blog/2024-10-04-fury_0_8_0_release.md
b/blog/2024-10-04-fury_0_8_0_release.md
index d0c07a6e..a8f382eb 100644
--- a/blog/2024-10-04-fury_0_8_0_release.md
+++ b/blog/2024-10-04-fury_0_8_0_release.md
@@ -7,13 +7,13 @@ tags: [fury]
The Apache Fury team is pleased to announce the 0.8.0 release. This is a major
release that includes [23
PR](https://github.com/apache/fury/compare/v0.7.1...v0.8.0) from 7 distinct
contributors. See the [Install](https://fury.apache.org/docs/start/install)
Page to learn how to get the libraries for your platform.
-### Highlights
+## Highlights
* Support graalvm 17/21/22 native image
* Release fury optimized serializers for scala collection
* Reduce scala collection classname serialization cost using dict encoding
-### Features
+## Features
* refactor(rust): simplify error handle by @jiacai2050 in
https://github.com/apache/fury/pull/1823
* feat(java): support graalvm 17/21/22 by @chaokunyang in
https://github.com/apache/fury/pull/1845
@@ -53,7 +53,7 @@ The Apache Fury team is pleased to announce the 0.8.0
release. This is a major r
## Acknowledgements
-Thanks @@jiacai2050 @fink-arthur @sh-cho @pjfanning @chaokunyang @yoohaemin
+Thanks @jiacai2050 @fink-arthur @sh-cho @pjfanning @chaokunyang @yoohaemin
A big thank you to all our contributors who have worked hard on this release.
Your contributions, whether through code,
documentation, or issue reporting, are really appreciated.
diff --git a/blog/2024-11-10-fury_0_9_0_release.md
b/blog/2024-11-10-fury_0_9_0_release.md
new file mode 100644
index 00000000..36d0ba1d
--- /dev/null
+++ b/blog/2024-11-10-fury_0_9_0_release.md
@@ -0,0 +1,75 @@
+---
+slug: fury_0_9_0_release
+title: Fury v0.9.0 Released
+authors: [chaokunyang]
+tags: [fury]
+---
+
+The Apache Fury team is pleased to announce the 0.8.0 release. This is a major
release that includes [34
PR](https://github.com/apache/fury/compare/v0.8.0...v0.9.0) from 14 distinct
contributors. See the [Install](https://fury.apache.org/docs/start/install)
Page to learn how to get the libraries for your platform.
+
+## Highlight
+
+* Optimized serializers for Fury kotlin support
+* Highly-optimized UTF-8 string encoding implementation for Java(2x faster
than JDK utf8 encoding)
+* Reduce metastring hashcode payload for small string(`<=16 bytes`)
+* Support building C++ libs on windows platform
+
+## Features
+
+* feat(kotlin): Introduce kotlin package with stdlib collections and tests by
@wywen in https://github.com/apache/fury/pull/1877
+* feat(kotlin): Add Unsigned Primitive Support by @wywen in
https://github.com/apache/fury/pull/1886
+* feat(kotlin): Add unsigned array support and tests for arrays and strings by
@wywen in https://github.com/apache/fury/pull/1891
+* feat(java): Refactor String serialization and deserialization by
@HuangXingBo in https://github.com/apache/fury/pull/1890
+* feat(java): support thread safe register callback for scala kotlin by
@chaokunyang in https://github.com/apache/fury/pull/1895
+* feat(scala): add scala range serializer by @chaokunyang in
https://github.com/apache/fury/pull/1899
+* feat(java): add option to treat enum as string by @orisgarno in
https://github.com/apache/fury/pull/1892
+* feat(kotlin): Add tests and support for built-in types from the kotlin
stdlib by @wywen in https://github.com/apache/fury/pull/1901
+* feat(java): reduce metastring hashcode payload for small string(`<=16
bytes`) by @chaokunyang in https://github.com/apache/fury/pull/1909
+* feat(javascript): Added serialization and serialization for Type Meta Layer
by @Forchapeatl in https://github.com/apache/fury/pull/1825
+* feat(bazel): support building C++ libs on windows platform by @An-DJ in
https://github.com/apache/fury/pull/1873
+* feat(scala): support scala native image build by @chaokunyang in
https://github.com/apache/fury/pull/1922
+* perf(python): Add python benchmark test by @penguin-wwy in
https://github.com/apache/fury/pull/1916
+
+## Bug Fix
+
+* fix(scala): ban these sbt commands by @pjfanning in
https://github.com/apache/fury/pull/1862
+* fix(java): fix async compilation switch for non-public nested class by
@chaokunyang in https://github.com/apache/fury/pull/1883
+* fix(java): fix add fury thread safety issue by @chaokunyang in
https://github.com/apache/fury/pull/1889
+* fix(other): fix feature request template by @chaokunyang in
https://github.com/apache/fury/pull/1898
+* fix(java): NonExistentEnum on mode serializeEnumByName by @orisgarno in
https://github.com/apache/fury/pull/1904
+* fix(java): ThreadLocalFury and ThreadPoolFury prioritize using the user
classloader by @Aliothmoon in https://github.com/apache/fury/pull/1907
+* fix(java): child container deep copy by @zhaommmmomo in
https://github.com/apache/fury/pull/1911
+* fix(java): Fix incorrect results of utf16 to utf8 conversion for latin1 but
not ascii characters in https://github.com/apache/fury/pull/1914
+* fix(python): Eliminate PytestCollectionWarning when running pytest by
@penguin-wwy in https://github.com/apache/fury/pull/1917
+
+## Other Improvements
+
+* chore(py314): Replace deprecated pkgutil.find_loader by @effigies in
https://github.com/apache/fury/pull/1888
+* docs(guide): Fix package typo by @mandrean in
https://github.com/apache/fury/pull/1906
+* build(kotlin): Add spotless ktfmt and enable explicit api mode for library
code. by @wywen in https://github.com/apache/fury/pull/1912
+* build(deps): upgrade scala (2.13.15/3.3.4) by @pjfanning in
https://github.com/apache/fury/pull/1861
+* feat(rust): add rust-analyzer to toolchain by @caicancai in
https://github.com/apache/fury/pull/1865
+* chore(scala): add scala build script by @chaokunyang in
https://github.com/apache/fury/pull/1920
+* chore(kotlin): add parent pom for fury kotlin by @chaokunyang in
https://github.com/apache/fury/pull/1921
+* feat(java): Improve error message on architecture not using little-endian
format by @apupier in https://github.com/apache/fury/pull/1918
+
+## New Contributors
+
+* @An-DJ made their first contribution in
https://github.com/apache/fury/pull/1873
+* @wywen made their first contribution in
https://github.com/apache/fury/pull/1877
+* @effigies made their first contribution in
https://github.com/apache/fury/pull/1888
+* @HuangXingBo made their first contribution in
https://github.com/apache/fury/pull/1890
+* @orisgarno made their first contribution in
https://github.com/apache/fury/pull/1892
+* @mandrean made their first contribution in
https://github.com/apache/fury/pull/1906
+* @Aliothmoon made their first contribution in
https://github.com/apache/fury/pull/1907
+* @penguin-wwy made their first contribution in
https://github.com/apache/fury/pull/1916
+* @apupier made their first contribution in
https://github.com/apache/fury/pull/1918
+
+**Full Changelog**: https://github.com/apache/fury/compare/v0.8.0...v0.9.0
+
+## Acknowledgements
+
+Thanks @effigies @apupier @wywen @mandrean @HuangXingBo @pjfanning
@chaokunyang @penguin-wwy @An-DJ @Forchapeatl @orisgarno @zhaommmmomo
@caicancai @Aliothmoon
+
+A big thank you to all our contributors who have worked hard on this release.
Your contributions, whether through code,
+documentation, or issue reporting, are really appreciated.
diff --git a/docs/guide/scala_guide.md b/docs/guide/scala_guide.md
index 83efd1b4..534667a1 100644
--- a/docs/guide/scala_guide.md
+++ b/docs/guide/scala_guide.md
@@ -19,13 +19,13 @@ 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"
```
## Fury creation
diff --git a/docs/start/install.md b/docs/start/install.md
index 21cf7b0f..2f75c9b1 100644
--- a/docs/start/install.md
+++ b/docs/start/install.md
@@ -16,13 +16,13 @@ To add a dependency on Fury using Maven, use the following:
<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> -->
```
@@ -34,7 +34,7 @@ To add a dependency on Fury scala for scala 2.13 with maven,
use the following:
<dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-scala_2.13</artifactId>
- <version>0.8.0</version>
+ <version>0.9.0</version>
</dependency>
```
@@ -44,18 +44,30 @@ To add a dependency on Fury scala for scala 3 with maven,
use the following:
<dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-scala_3</artifactId>
- <version>0.8.0</version>
+ <version>0.9.0</version>
</dependency>
```
To add a dependency on Fury scala for scala 2.13 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"
+```
+
+## Kotlin
+
+To add a dependency on Fury kotlin with maven, use the following:
+
+```xml
+<dependency>
+ <groupId>org.apache.fury</groupId>
+ <artifactId>fury-kotlin</artifactId>
+ <version>0.9.0</version>
+</dependency>
```
diff --git a/docs/start/usage.md b/docs/start/usage.md
index a2be7491..2a5a83b6 100644
--- a/docs/start/usage.md
+++ b/docs/start/usage.md
@@ -30,6 +30,54 @@ public class Example {
}
```
+## Scala Serialization
+
+```scala
+import org.apache.fury.Fury
+import org.apache.fury.serializer.scala.ScalaSerializers
+
+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))))
+ }
+}
+```
+
+## Kotlin Serialization
+
+```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))))
+}
+```
+
## CrossLanguage Serialization
### Java
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/guide/java_serialization_guide.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/guide/java_serialization_guide.md
index 86ffb409..d6daf422 100644
---
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/guide/java_serialization_guide.md
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/guide/java_serialization_guide.md
@@ -381,7 +381,7 @@ if(JavaSerializer.serializedByJDK(bytes)){
### Apache Fury 更新
-当前只保证小版本之间的兼容性。例如:您使用的 Fury 版本为 `0.7.0`,当升级到 Fury `0.7.1`
版本,可以确保二进制协议的兼容性。但是,如果更新到 Fury `0.8.0`
版本,二进制协议兼容性能力不能得到保证。我们计划在1.0.0版本开始提供大版本内的二进制兼容性。
+当前只保证小版本之间的兼容性。例如:您使用的 Fury 版本为 `0.9.0`,当升级到 Fury `0.8.1`
版本,可以确保二进制协议的兼容性。但是,如果更新到 Fury `0.9.0`
版本,二进制协议兼容性能力不能得到保证。我们计划在1.0.0版本开始提供大版本内的二进制兼容性。
## 常见问题排查
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/install.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/install.md
index 5c93cacf..9a4b505b 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/install.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/install.md
@@ -14,13 +14,13 @@ Apache Fury 源码下载请参见 Apache Fury
[download](https://github.com/apac
<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> -->
```
@@ -32,7 +32,7 @@ Apache Fury 源码下载请参见 Apache Fury
[download](https://github.com/apac
<dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-scala_2.13</artifactId>
- <version>0.8.0</version>
+ <version>0.9.0</version>
</dependency>
```
@@ -42,18 +42,30 @@ Apache Fury 源码下载请参见 Apache Fury
[download](https://github.com/apac
<dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-scala_3</artifactId>
- <version>0.8.0</version>
+ <version>0.9.0</version>
</dependency>
```
要使用 sbt 添加 scala 2.13 的 Fury scala 依赖,请使用以下配置:
```sbt
-libraryDependencies += "org.apache.fury" % "fury-scala_2.13" % "0.8.0"
+libraryDependencies += "org.apache.fury" % "fury-scala_2.13" % "0.9.0"
```
要使用 sbt 添加 scala 3 的 Fury scala 依赖,请使用以下配置:
```sbt
-libraryDependencies += "org.apache.fury" % "fury-scala_3" % "0.8.0"
+libraryDependencies += "org.apache.fury" % "fury-scala_3" % "0.9.0"
+```
+
+## Fury Kotlin 安装
+
+To add a dependency on Fury kotlin with maven, use the following:
+
+```xml
+<dependency>
+ <groupId>org.apache.fury</groupId>
+ <artifactId>fury-kotlin</artifactId>
+ <version>0.9.0</version>
+</dependency>
```
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/usage.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/usage.md
index 8f7b3a5a..ff6653fc 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/usage.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/usage.md
@@ -32,6 +32,51 @@ public class Example {
}
```
+## Scala序列化
+
+```scala
+import org.apache.fury.Fury
+import org.apache.fury.serializer.scala.ScalaSerializers
+
+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))))
+ }
+}
+
+## Kotlin序列化
+```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>) {
+ // 注意: 下面的Fury初始化代码应该只执行一次,而不是在每次序列化前都运行
+ 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))))
+}
+```
+
## 跨语言序列化
### Java
diff --git a/src/pages/download/index.md b/src/pages/download/index.md
index b0c28e16..68279f8a 100644
--- a/src/pages/download/index.md
+++ b/src/pages/download/index.md
@@ -9,11 +9,11 @@ For binary install, please see Fury
[install](/docs/start/install/) document.
## The latest release
-The latest source release is 0.8.0:
+The latest source release is 0.9.0:
| Version | Date | Source | Release Notes |
|---------|------------|--------|---------------|
-| 0.8.0 |2024-10-04 |
[source](https://www.apache.org/dyn/closer.lua/incubator/fury/0.8.0/apache-fury-0.8.0-incubating-src.tar.gz?action=download)
[asc](https://downloads.apache.org/incubator/fury/0.8.0/apache-fury-0.8.0-incubating-src.tar.gz.asc)
[sha512](https://downloads.apache.org/incubator/fury/0.8.0/apache-fury-0.8.0-incubating-src.tar.gz.sha512)
| [release notes](https://github.com/apache/fury/releases/tag/v0.8.0) |
+| 0.9.0 |2024-11-10 |
[source](https://www.apache.org/dyn/closer.lua/incubator/fury/0.9.0/apache-fury-0.9.0-incubating-src.tar.gz?action=download)
[asc](https://downloads.apache.org/incubator/fury/0.9.0/apache-fury-0.9.0-incubating-src.tar.gz.asc)
[sha512](https://downloads.apache.org/incubator/fury/0.9.0/apache-fury-0.9.0-incubating-src.tar.gz.sha512)
| [release notes](https://github.com/apache/fury/releases/tag/v0.9.0) |
## All archived releases
@@ -31,13 +31,13 @@ These files are named after the files they relate to but
have `.sha512/.asc` ext
To verify the SHA digests, you need the `.tgz` and its associated
`.tgz.sha512` file. An example command:
```bash
-sha512sum --check apache-fury-incubating-0.8.0-src.tar.gz
+sha512sum --check apache-fury-incubating-0.9.0-src.tar.gz
```
It should output something like:
```bash
-apache-fury-incubating-0.8.0-src.tar.gz: OK
+apache-fury-incubating-0.9.0-src.tar.gz: OK
```
### Verifying Signatures
@@ -54,7 +54,7 @@ gpg --import KEYS
Then you can verify signature:
```bash
-gpg --verify apache-fury-incubating-0.8.0-src.tar.gz.asc
apache-fury-incubating-0.8.0-src.tar.gz
+gpg --verify apache-fury-incubating-0.9.0-src.tar.gz.asc
apache-fury-incubating-0.9.0-src.tar.gz
```
If something like the following appears, it means the signature is correct:
diff --git a/src/pages/home/components/HomePageLanguageCard.tsx
b/src/pages/home/components/HomePageLanguageCard.tsx
index 8749bfc1..dd930442 100644
--- a/src/pages/home/components/HomePageLanguageCard.tsx
+++ b/src/pages/home/components/HomePageLanguageCard.tsx
@@ -1,9 +1,15 @@
-import React from "react";
+import React, { useEffect, useState } from "react";
import { Card } from "antd";
import useBaseUrl from "@docusaurus/useBaseUrl";
export default function HomePageLanguageCard() {
- const locale = navigator.language || "en-US";
+ const [locale, setLocale] = useState("en-US");
+
+ useEffect(() => {
+ if (typeof navigator !== "undefined") {
+ setLocale(navigator.language || "en-US");
+ }
+ }, []);
const getLanguageUrl = (language: string) => {
const baseUrl = locale.startsWith("zh-CN")
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]