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]

Reply via email to