This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a commit to branch release_1.4.0
in repository https://gitbox.apache.org/repos/asf/fory-site.git

commit 9816bf04e861a7e90a55c4ef6588de64f14477ac
Author: chaokunyang <[email protected]>
AuthorDate: Mon Jul 20 12:05:33 2026 +0800

    Prepare Fory 1.4.0 English release content
---
 blog/2026-07-20-fory_1_4_0_released.md  | 150 +++++++++++++++++++++++
 docs/introduction/features.md           | 210 --------------------------------
 docs/start/install.md                   |  32 ++---
 src/components/home/HomepageLanding.tsx |  18 +--
 src/pages/download/index.md             |  10 +-
 5 files changed, 180 insertions(+), 240 deletions(-)

diff --git a/blog/2026-07-20-fory_1_4_0_released.md 
b/blog/2026-07-20-fory_1_4_0_released.md
new file mode 100644
index 0000000000..350a032da0
--- /dev/null
+++ b/blog/2026-07-20-fory_1_4_0_released.md
@@ -0,0 +1,150 @@
+---
+slug: fory_1_4_0_release
+title: Fory v1.4.0 Released
+authors: [chaokunyang]
+tags: [fory, java, kotlin, scala, android, python, rust, c++, go, c#, swift, 
dart, compiler]
+---
+
+The Apache Fory team is pleased to announce the 1.4.0 release. This release 
includes [65 PRs](https://github.com/apache/fory/compare/v1.3.0...v1.4.0) from 
9 distinct contributors. See the 
[Install](https://fory.apache.org/docs/start/install) page to get the libraries 
for your platform.
+
+## Highlights
+
+* Introduced Fory JSON for Java, featuring high-performance code generation, 
rich annotations and mix-ins, dynamic properties, and support for Android and 
GraalVM native images.
+* Improved performance, safety, and compatibility with a configurable 
container memory budget, more efficient stream deserialization, Python 3.14 
support, and numerous cross-runtime fixes.
+
+## Fory JSON for Java
+
+Fory 1.4.0 introduces Fory JSON, a high-performance, thread-safe JSON 
serialization framework for Java applications. It provides direct mapping 
between standard JSON and idiomatic Java domain objects, making it suitable for 
HTTP APIs, browser traffic, logs, configuration, and other interoperable text 
payloads.
+
+Its main capabilities include:
+
+* **High-performance serialization:** optimized readers and writers work with 
interpreted and runtime-generated serializers to accelerate both JSON encoding 
and decoding.
+* **Rich Java object mapping:** ordinary classes, Java records, immutable 
creator-based classes, common JDK types, and generic containers are supported.
+* **Flexible customization:** annotations, mix-ins, and custom codecs adapt 
application types to JSON, covering property names, order, inclusion, creators, 
polymorphism, unwrapped values, dynamic properties, and specialized 
representations.
+* **Broad platform support:** supports JDK 8 and later, Android, and GraalVM 
native images.
+
+Add the `fory-json` artifact to your application:
+
+```xml
+<dependency>
+  <groupId>org.apache.fory</groupId>
+  <artifactId>fory-json</artifactId>
+  <version>1.4.0</version>
+</dependency>
+```
+
+`ForyJson` is immutable and thread-safe after construction, so one instance 
can be reused across threads:
+
+```java
+import org.apache.fory.json.ForyJson;
+
+public final class JsonExample {
+  private static final ForyJson JSON = ForyJson.builder().build();
+
+  public static final class User {
+    public long id;
+    public String name;
+
+    public User() {}
+  }
+
+  public static void main(String[] args) {
+    User user = new User();
+    user.id = 7;
+    user.name = "Alice";
+
+    // Serialize to JSON text and deserialize from text.
+    String text = JSON.toJson(user);
+    User fromText = JSON.fromJson(text, User.class);
+
+    // Serialize directly to UTF-8 bytes and deserialize without an 
intermediate String.
+    byte[] utf8 = JSON.toJsonBytes(user);
+    User fromUtf8 = JSON.fromJson(utf8, User.class);
+  }
+}
+```
+
+See the [Fory JSON documentation](/docs/guide/java/json-support) for the 
complete type model, annotations and mix-ins, dynamic properties, custom 
serializers, security controls, and Android or GraalVM setup.
+
+## Features
+
+* feat(java): direct static varhandle field accessors by @chaokunyang in 
https://github.com/apache/fory/pull/3778
+* feat(python): add Python 3.14 CI and wheels by @chaokunyang in 
https://github.com/apache/fory/pull/3781
+* feat(java): add fory json serialization by @chaokunyang in 
https://github.com/apache/fory/pull/3784
+* feat(java): optimize java serialization perf by @chaokunyang in 
https://github.com/apache/fory/pull/3794
+* feat(format): support custom codecs keyed on Optional by @stevenschlansker 
in https://github.com/apache/fory/pull/3800
+* feat(java): refine java json serde by @chaokunyang in 
https://github.com/apache/fory/pull/3806
+* perf(java): avoid quadratic buffer growth in stream deserialization by 
@temni in https://github.com/apache/fory/pull/3809
+* ci(swift): enforce swift-format by @chaokunyang in 
https://github.com/apache/fory/pull/3812
+* ci: reuse cached Swift build artifacts by @chaokunyang in 
https://github.com/apache/fory/pull/3811
+* refactor(go): remove static codegen by @chaokunyang in 
https://github.com/apache/fory/pull/3815
+* feat: add container memory budget by @chaokunyang in 
https://github.com/apache/fory/pull/3795
+* feat(java): add once logging APIs by @chaokunyang in 
https://github.com/apache/fory/pull/3821
+* perf(java): optimize java json serde performance by @chaokunyang in 
https://github.com/apache/fory/pull/3808
+* feat(java): add async codegen for Fory JSON by @chaokunyang in 
https://github.com/apache/fory/pull/3825
+* feat(java): add json type checker by @chaokunyang in 
https://github.com/apache/fory/pull/3829
+* feat(java): refactor json codec api by @chaokunyang in 
https://github.com/apache/fory/pull/3830
+* perf(java): optimize json serialize perf by @chaokunyang in 
https://github.com/apache/fory/pull/3834
+* feat(java): add fory json annotations by @chaokunyang in 
https://github.com/apache/fory/pull/3835
+* feat(compiler): handle C++ identifier escaping and name collisions by 
@BaldDemian in https://github.com/apache/fory/pull/3839
+* feat(java): enhance class check by @chaokunyang in 
https://github.com/apache/fory/pull/3837
+* feat(java): add json property order annotation by @chaokunyang in 
https://github.com/apache/fory/pull/3840
+* feat(json): support dynamic object properties by @chaokunyang in 
https://github.com/apache/fory/pull/3841
+* refactor(java): simplify JSON subtype member writing by @chaokunyang in 
https://github.com/apache/fory/pull/3842
+* feat(java): add JSON codec annotation by @chaokunyang in 
https://github.com/apache/fory/pull/3844
+* refactor(java): embed GraalVM feature in core by @chaokunyang in 
https://github.com/apache/fory/pull/3845
+* feat(java): support Fory JSON in GraalVM native image by @chaokunyang in 
https://github.com/apache/fory/pull/3846
+* feat(java): make DefaultJdkClassAllowList public by @eryanwcp in 
https://github.com/apache/fory/pull/3849
+* feat(java): update AllowListChecker to include checks against disallowed and 
allowed class lists by @eryanwcp in https://github.com/apache/fory/pull/3850
+* feat(java): support Fory JSON on Android by @chaokunyang in 
https://github.com/apache/fory/pull/3852
+* refactor(java): simplify json codec annotations by @chaokunyang in 
https://github.com/apache/fory/pull/3854
+* feat(java): add json value annotations by @chaokunyang in 
https://github.com/apache/fory/pull/3855
+* feat(java): generate JSON object/record codecs helper for android by 
@chaokunyang in https://github.com/apache/fory/pull/3857
+* feat(java): support JSON unwrapped properties by @chaokunyang in 
https://github.com/apache/fory/pull/3856
+* feat(java): add Json object field cache by @chaokunyang in 
https://github.com/apache/fory/pull/3862
+* feat(java): add json mixin support by @chaokunyang in 
https://github.com/apache/fory/pull/3863
+* feat(java): add abstract json value codec by @chaokunyang in 
https://github.com/apache/fory/pull/3865
+* perf(java): fix json perf regression by @chaokunyang in 
https://github.com/apache/fory/pull/3866
+
+## Bug Fix
+
+* fix(java): log ForyBuilder advisories at info level by @chaokunyang in 
https://github.com/apache/fory/pull/3777
+* fix(java): fix unbounded LinkedBlockingQueue deserialization by @00sense in 
https://github.com/apache/fory/pull/3786
+* fix(ci): checkstyle CI error output by @stevenschlansker in 
https://github.com/apache/fory/pull/3796
+* fix(c++): replace deprecated std::aligned_storage by @RisinT96 in 
https://github.com/apache/fory/pull/3793
+* fix(c++): make temporal types hashable by @BaldDemian in 
https://github.com/apache/fory/pull/3789
+* fix(java): add JDK25 trusted lookup Unsafe fallback by @chaokunyang in 
https://github.com/apache/fory/pull/3802
+* fix(compiler): reject any, message and union as map key types by @BaldDemian 
in https://github.com/apache/fory/pull/3804
+* fix(java): fix collection get element type bug by @Pigsy-Monk in 
https://github.com/apache/fory/pull/3803
+* fix(compiler): reject optional any in IDL validation by @BaldDemian in 
https://github.com/apache/fory/pull/3807
+* fix(compiler): never generate C++ equality methods for message and union 
containing any by @BaldDemian in https://github.com/apache/fory/pull/3810
+* fix(Java): prevent StackOverflow in normalizeIterableTypeArguments for 
self-referential collections by @Pigsy-Monk in 
https://github.com/apache/fory/pull/3817
+* fix(compiler): alias C++ union case types in metadata macros by @BaldDemian 
in https://github.com/apache/fory/pull/3814
+* fix(compiler): use protobuf syntax highlighter in docs by @ayush00git in 
https://github.com/apache/fory/pull/3819
+* fix(C++): add unordered_map type info hooks by @BaldDemian in 
https://github.com/apache/fory/pull/3820
+* fix(rust): stabilize meta string dynamic cache by @chaokunyang in 
https://github.com/apache/fory/pull/3822
+* fix: keep skip reference ids aligned by @chaokunyang in 
https://github.com/apache/fory/pull/3823
+* fix(rust): fix mulmurhash compute by @chaokunyang in 
https://github.com/apache/fory/pull/3824
+* fix(java): preserve collection TypeDef serializer family by @chaokunyang in 
https://github.com/apache/fory/pull/3827
+* fix(java): stabilize readResolve type metadata by @chaokunyang in 
https://github.com/apache/fory/pull/3831
+* fix(java): skip missing compatible struct fields by @chaokunyang in 
https://github.com/apache/fory/pull/3833
+* fix(java): support inherited fields in xlang by @chaokunyang in 
https://github.com/apache/fory/pull/3838
+* fix(java): support guava android collections by @chaokunyang in 
https://github.com/apache/fory/pull/3851
+* fix(java): stabilize GraalVM field offsets by @chaokunyang in 
https://github.com/apache/fory/pull/3853
+* fix(java): restore inherited container field types by @chaokunyang in 
https://github.com/apache/fory/pull/3864
+
+## Other Improvements
+
+* chore: fold Fory review skill into agent guidance by @chaokunyang in 
https://github.com/apache/fory/pull/3779
+* chore(release): bump versions to 1.3.0 by @chaokunyang in 
https://github.com/apache/fory/pull/3792
+* chore(javascript): add javascript code format by @chaokunyang in 
https://github.com/apache/fory/pull/3813
+* docs(compiler): documented grpc service stubs by @ayush00git in 
https://github.com/apache/fory/pull/3818
+
+## New Contributors
+
+* @00sense made their first contribution in 
https://github.com/apache/fory/pull/3786
+* @RisinT96 made their first contribution in 
https://github.com/apache/fory/pull/3793
+* @temni made their first contribution in 
https://github.com/apache/fory/pull/3809
+* @eryanwcp made their first contribution in 
https://github.com/apache/fory/pull/3849
+
+**Full Changelog**: https://github.com/apache/fory/compare/v1.3.0...v1.4.0
diff --git a/docs/introduction/features.md b/docs/introduction/features.md
deleted file mode 100644
index 1651d47036..0000000000
--- a/docs/introduction/features.md
+++ /dev/null
@@ -1,210 +0,0 @@
----
-id: features
-title: Features
-sidebar_position: 2
----
-
-## Core Capabilities
-
-### High-Performance Serialization
-
-Apache Fory™ delivers exceptional performance through advanced optimization 
techniques:
-
-- **JIT Compilation**: Runtime code generation for Java eliminates virtual 
method calls and inlines hot paths
-- **Static Code Generation**: Compile-time code generation for Rust, C++, and 
Go delivers peak performance without runtime overhead
-- **Zero-Copy Operations**: Direct memory access without intermediate buffer 
copies; row format enables random access and partial serialization
-- **Intelligent Encoding**: Variable-length compression for integers and 
strings; SIMD acceleration for arrays (Java 16+)
-- **Meta Sharing**: Class metadata packing reduces redundant type information 
across serializations
-
-### Cross-Language Serialization
-
-The **[xlang serialization 
format](../specification/xlang_serialization_spec.md)** enables seamless data 
exchange across programming languages:
-
-- **Automatic Type Mapping**: Intelligent conversion between language-specific 
types ([type mapping](../specification/xlang_type_mapping.md))
-- **Reference Preservation**: Shared and circular references work correctly 
across languages
-- **Polymorphism**: Objects serialize/deserialize with their actual runtime 
types
-- **Schema Evolution**: Optional forward/backward compatibility for evolving 
schemas
-- **Automatic Serialization**: No IDL or schema definitions required; 
serialize any object directly without code generation
-
-### Row Format
-
-A cache-friendly **[row format](../specification/row_format_spec.md)** 
optimized for analytics workloads:
-
-- **Zero-Copy Random Access**: Read individual fields without deserializing 
entire objects
-- **Partial Operations**: Selective field serialization and deserialization 
for efficiency
-- **Apache Arrow Integration**: Seamless conversion to columnar format for 
analytics pipelines
-- **Multi-Language**: Available in Java, Python, Rust and C++
-
-### Security & Production-Readiness
-
-Enterprise-grade security and compatibility:
-
-- **Class Registration**: Whitelist-based deserialization control (enabled by 
default)
-- **Depth Limiting**: Protection against recursive object graph attacks
-- **Configurable Policies**: Custom class checkers and deserialization policies
-- **Platform Support**: Java 8-24, GraalVM native image, multiple OS platforms
-
-## Java Features
-
-### High Performance
-
-- **JIT Code Generation**: Highly-extensible JIT framework generates 
serializer code at runtime using async multi-threaded compilation, delivering 
20-170x speedup through:
-  - Inlining variables to reduce memory access
-  - Inlining method calls to eliminate virtual dispatch overhead
-  - Minimizing conditional branching
-  - Eliminating hash lookups
-- **Zero-Copy**: Direct memory access without intermediate buffer copies; row 
format supports random access and partial serialization
-- **Variable-Length Encoding**: Optimized compression for integers, longs
-- **Meta Sharing**: Cached class metadata reduces redundant type information
-- **SIMD Acceleration**: Java Vector API support for array operations (Java 
16+)
-
-### Drop-in Replacement
-
-- **100% JDK Serialization Compatible**: Supports 
`writeObject`/`readObject`/`writeReplace`/`readResolve`/`readObjectNoData`/`Externalizable`
-- **Java 8-24 Support**: Works across all modern Java versions including Java 
17+ records
-- **GraalVM Native Image**: AOT compilation support without reflection 
configuration
-
-### Advanced Features
-
-- **Reference Tracking**: Automatic handling of shared and circular references
-- **Schema Evolution**: Forward/backward compatibility for class schema changes
-- **Polymorphism**: Full support for inheritance hierarchies and interfaces
-- **Deep Copy**: Efficient deep cloning of complex object graphs with 
reference preservation
-- **Security**: Class registration and configurable deserialization policies
-
-## Python Features
-
-### **Flexible Serialization Modes**
-
-- **Python native Mode**: Full Python compatibility, drop-in replacement for 
pickle/cloudpickle
-- **Cross-Language Mode**: Optimized for multi-language data exchange
-- **Row Format**: Zero-copy row format for analytics workloads
-
-### Versatile Serialization Features
-
-- **Shared/circular reference support** for complex object graphs in both 
Python-native and cross-language modes
-- **Polymorphism support** for customized types with automatic type dispatching
-- **Schema evolution** support for backward/forward compatibility when using 
dataclasses in cross-language mode
-- **Out-of-band buffer support** for zero-copy serialization of large data 
structures like NumPy arrays and Pandas DataFrames, compatible with pickle 
protocol 5
-
-### **Blazing Fast Performance**
-
-- **Extremely fast performance** compared to other serialization frameworks
-- **Runtime code generation** and **Cython-accelerated** core implementation 
for optimal performance
-
-### Compact Data Size
-
-- **Compact object graph protocol** with minimal space overhead—up to 3× size 
reduction compared to pickle/cloudpickle
-- **Meta packing and sharing** to minimize type forward/backward compatibility 
space overhead
-
-### **Security & Safety**
-
-- **Strict mode** prevents deserialization of untrusted types by type 
registration and checks.
-- **Reference tracking** for handling circular references safely
-
-## Rust Features
-
-### Why Apache Fory™ Rust?
-
-- **Blazingly Fast**: Zero-copy deserialization and optimized binary protocols
-- **Cross-Language**: Seamlessly serialize/deserialize data across Java, 
Python, C++, Go, JavaScript, and Rust
-- **Type-Safe**: Compile-time type checking with derive macros
-- **Circular References**: Automatic tracking of shared and circular 
references with `Rc`/`Arc` and weak pointers
-- **Polymorphic**: Serialize trait objects with `Box<dyn Trait>`, `Rc<dyn 
Trait>`, and `Arc<dyn Trait>`
-- **Schema Evolution**: Compatible mode for independent schema changes
-- **Two Modes**: Object graph serialization and zero-copy row-based format
-
-### Object Graph Serialization
-
-Automatic serialization of complex object graphs, preserving the structure and 
relationships between objects. The `#[derive(ForyObject)]` macro generates 
efficient serialization code at compile time, eliminating runtime overhead:
-
-- Nested struct serialization with arbitrary depth
-- Collection types (Vec, HashMap, HashSet, BTreeMap)
-- Enum type support
-- Optional fields with `Option<T>`
-- Automatic handling of primitive types and strings
-- Efficient binary encoding with variable-length integers
-
-### Shared and Circular References
-
-Automatically tracks and preserves reference identity for shared objects using 
`Rc<T>` and `Arc<T>`. When the same object is referenced multiple times, Fory 
serializes it only once and uses reference IDs for subsequent occurrences. This 
ensures:
-
-- **Space efficiency**: No data duplication in serialized output
-- **Reference identity preservation**: Deserialized objects maintain the same 
sharing relationships
-- **Circular reference support**: Use `RcWeak<T>` and `ArcWeak<T>` to break 
cycles
-
-### Trait Object Serialization
-
-Polymorphic serialization through trait objects, enabling dynamic dispatch and 
type flexibility. This is essential for plugin systems, heterogeneous 
collections, and extensible architectures. Supported trait object types:
-
-- `Box<dyn Trait>` - Owned trait objects
-- `Rc<dyn Trait>` - Reference-counted trait objects
-- `Arc<dyn Trait>` - Thread-safe reference-counted trait objects
-- `Vec<Box<dyn Trait>>`, `HashMap<K, Box<dyn Trait>>` - Collections of trait 
objects
-
-### Schema Evolution
-
-Schema evolution in **Compatible mode**, allowing serialization and 
deserialization peers to have different type definitions. This enables 
independent evolution of services in distributed systems without breaking 
compatibility:
-
-- Add new fields with default values
-- Remove obsolete fields (skipped during deserialization)
-- Change field nullability (`T` ↔ `Option<T>`)
-- Reorder fields (matched by name, not position)
-- Type-safe fallback to default values for missing fields
-
-### Custom Serializers
-
-For types that don't support `#[derive(ForyObject)]`, implement the 
`Serializer` trait manually. This is useful for:
-
-- External types from other crates
-- Types with special serialization requirements
-- Legacy data format compatibility
-- Performance-critical custom encoding
-
-### Row-Based Serialization
-
-High-performance **row format** for zero-copy deserialization. Unlike 
traditional object serialization that reconstructs entire objects in memory, 
row format enables **random access** to fields directly from binary data 
without full deserialization.
-
-- **Zero-copy access**: Read fields without allocating or copying data
-- **Partial deserialization**: Access only the fields you need
-- **Memory-mapped files**: Work with data larger than RAM
-- **Cache-friendly**: Sequential memory layout for better CPU cache utilization
-- **Lazy evaluation**: Defer expensive operations until field access
-
-## Scala Features
-
-### Supported Types
-
-Apache Fory™ supports all scala object serialization:
-
-- `case` class serialization supported
-- `pojo/bean` class serialization supported
-- `object` singleton serialization supported
-- `collection` serialization supported
-- other types such as `tuple/either` and basic types are all supported too.
-
-Scala 2 and 3 are both supported.
-
-### Scala Class Default Values Support
-
-Fory supports Scala class default values during deserialization when using 
compatible mode. This feature enables forward/backward compatibility when case 
classes or regular Scala classes have default parameters.
-
-When a Scala class has default parameters, the Scala compiler generates 
methods in the companion object (for case classes) or in the class itself (for 
regular Scala classes) like `apply$default$1`, `apply$default$2`, etc. that 
return the default values. Fory can detect these methods and use them when 
deserializing objects where certain fields are missing from the serialized data.
-
-## Kotlin Features
-
-Kotlin support builds on the default Fory Java implementation and adds 
handling for Kotlin-specific types and schema evolution.
-
-### Supported Types
-
-- Primitive types: `Byte`, `Boolean`, `Int`, `Short`, `Long`, `Char`, `Float`, 
`Double`
-- Unsigned types: `UByte`, `UShort`, `UInt`, `ULong`
-- Strings, standard arrays, and standard collections through the default Java 
implementation
-- Kotlin collections and arrays such as `ArrayDeque`, `Array`, `BooleanArray`, 
`ByteArray`, `IntArray`, `LongArray`, `UByteArray`, `UIntArray`, and 
`ULongArray`
-- Common stdlib types including `Pair`, `Triple`, `Result`, `Regex`, `Random`, 
`Duration`, and `Uuid`
-- Kotlin ranges and progressions such as `CharRange`, `IntRange`, `LongRange`, 
`UIntRange`, `ULongRange`, and related progression types
-- Empty collections such as `emptyList`, `emptyMap`, and `emptySet`
-
-### Data Class Default Value Support
-
-In compatible mode, Fory can detect Kotlin data class default values and apply 
them during deserialization when fields are missing. This allows schemas to 
evolve more safely, for example when adding new fields with defaults.
diff --git a/docs/start/install.md b/docs/start/install.md
index 76f33dad99..040b0ad9b5 100644
--- a/docs/start/install.md
+++ b/docs/start/install.md
@@ -16,14 +16,14 @@ Use Maven to add Apache Fory™:
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-core</artifactId>
-  <version>1.3.0</version>
+  <version>1.4.0</version>
 </dependency>
 <!-- Optional row format support -->
 <!--
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-format</artifactId>
-  <version>1.3.0</version>
+  <version>1.4.0</version>
 </dependency>
 -->
 <!-- SIMD acceleration for array compression (Java 16+) -->
@@ -31,7 +31,7 @@ Use Maven to add Apache Fory™:
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-simd</artifactId>
-  <version>1.3.0</version>
+  <version>1.4.0</version>
 </dependency>
 -->
 ```
@@ -44,7 +44,7 @@ Scala 2.13 with Maven:
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-scala_2.13</artifactId>
-  <version>1.3.0</version>
+  <version>1.4.0</version>
 </dependency>
 ```
 
@@ -54,20 +54,20 @@ Scala 3 with Maven:
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-scala_3</artifactId>
-  <version>1.3.0</version>
+  <version>1.4.0</version>
 </dependency>
 ```
 
 Scala 2.13 with sbt:
 
 ```sbt
-libraryDependencies += "org.apache.fory" % "fory-scala_2.13" % "1.3.0"
+libraryDependencies += "org.apache.fory" % "fory-scala_2.13" % "1.4.0"
 ```
 
 Scala 3 with sbt:
 
 ```sbt
-libraryDependencies += "org.apache.fory" % "fory-scala_3" % "1.3.0"
+libraryDependencies += "org.apache.fory" % "fory-scala_3" % "1.4.0"
 ```
 
 ## Kotlin
@@ -78,7 +78,7 @@ Add Apache Fory™ Kotlin with Maven:
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-kotlin</artifactId>
-  <version>1.3.0</version>
+  <version>1.4.0</version>
 </dependency>
 ```
 
@@ -86,7 +86,7 @@ Add Apache Fory™ Kotlin with Maven:
 
 ```bash
 python -m pip install --upgrade pip
-pip install pyfory==1.3.0
+pip install pyfory==1.4.0
 ```
 
 ## Go
@@ -94,7 +94,7 @@ pip install pyfory==1.3.0
 Use the full Go module path `github.com/apache/fory/go/fory`:
 
 ```bash
-go get github.com/apache/fory/go/[email protected]
+go get github.com/apache/fory/go/[email protected]
 ```
 
 If your Go proxy has not picked up the new submodule tag yet, retry later or 
use `GOPROXY=direct` temporarily.
@@ -103,13 +103,13 @@ If your Go proxy has not picked up the new submodule tag 
yet, retry later or use
 
 ```toml
 [dependencies]
-fory = "1.3.0"
+fory = "1.4.0"
 ```
 
 Or use `cargo add`:
 
 ```bash
-cargo add [email protected]
+cargo add [email protected]
 ```
 
 ## JavaScript / TypeScript
@@ -132,7 +132,7 @@ Add Apache Fory™ Dart to `pubspec.yaml`:
 
 ```yaml
 dependencies:
-  fory: ^1.3.0
+  fory: ^1.4.0
 
 dev_dependencies:
   build_runner: ^2.4.13
@@ -149,12 +149,12 @@ dart run build_runner build --delete-conflicting-outputs
 Install the `Apache.Fory` NuGet package. It includes both the runtime and the 
source generator for `[ForyObject]` types.
 
 ```bash
-dotnet add package Apache.Fory --version 1.3.0
+dotnet add package Apache.Fory --version 1.4.0
 ```
 
 ```xml
 <ItemGroup>
-  <PackageReference Include="Apache.Fory" Version="1.3.0" />
+  <PackageReference Include="Apache.Fory" Version="1.4.0" />
 </ItemGroup>
 ```
 
@@ -164,7 +164,7 @@ Add Apache Fory™ from the GitHub repository with Swift 
Package Manager:
 
 ```swift
 dependencies: [
-    .package(url: "https://github.com/apache/fory.git";, exact: "1.3.0")
+    .package(url: "https://github.com/apache/fory.git";, exact: "1.4.0")
 ],
 targets: [
     .target(
diff --git a/src/components/home/HomepageLanding.tsx 
b/src/components/home/HomepageLanding.tsx
index 887b30722c..74012eb197 100644
--- a/src/components/home/HomepageLanding.tsx
+++ b/src/components/home/HomepageLanding.tsx
@@ -138,7 +138,7 @@ const runtimeExamples: RuntimeExample[] = [
     install: `<dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-core</artifactId>
-  <version>1.3.0</version>
+  <version>1.4.0</version>
 </dependency>`,
     codeLanguage: "java",
     guide: "/docs/guide/java/",
@@ -181,7 +181,7 @@ out = fory.deserialize(data)`,
     id: "rust",
     label: "Rust",
     installLanguage: "bash",
-    install: `cargo add [email protected]`,
+    install: `cargo add [email protected]`,
     codeLanguage: "rust",
     guide: "/docs/guide/rust/",
     summary: "Rust uses derive macros for type-safe structs and supports both 
xlang and native payloads.",
@@ -229,7 +229,7 @@ _ = f.Deserialize(payload, &out)`,
     install: `FetchContent_Declare(
   fory
   GIT_REPOSITORY https://github.com/apache/fory.git
-  GIT_TAG v1.3.0
+  GIT_TAG v1.4.0
   SOURCE_SUBDIR cpp
 )`,
     codeLanguage: "cpp",
@@ -276,7 +276,7 @@ const out = deserialize(payload);`,
     id: "csharp",
     label: "C#",
     installLanguage: "bash",
-    install: `dotnet add package Apache.Fory --version 1.3.0`,
+    install: `dotnet add package Apache.Fory --version 1.4.0`,
     codeLanguage: "csharp",
     guide: "/docs/guide/csharp/",
     summary: ".NET support uses source-generated serializers for Fory structs, 
enums, and unions.",
@@ -299,7 +299,7 @@ Person out = fory.Deserialize<Person>(payload);`,
     id: "swift",
     label: "Swift",
     installLanguage: "swift",
-    install: `.package(url: "https://github.com/apache/fory.git";, exact: 
"1.3.0")`,
+    install: `.package(url: "https://github.com/apache/fory.git";, exact: 
"1.4.0")`,
     codeLanguage: "swift",
     guide: "/docs/guide/swift/",
     summary: "Swift uses @ForyStruct, @ForyEnum, and @ForyUnion macros for 
xlang-compatible models.",
@@ -322,7 +322,7 @@ let out: Person = try fory.deserialize(payload)`,
     label: "Dart",
     installLanguage: "yaml",
     install: `dependencies:
-  fory: ^1.3.0
+  fory: ^1.4.0
 
 dev_dependencies:
   build_runner: ^2.4.13`,
@@ -357,7 +357,7 @@ final out = fory.deserialize<Person>(payload);`,
     id: "scala",
     label: "Scala",
     installLanguage: "sbt",
-    install: `libraryDependencies += "org.apache.fory" %% "fory-scala" % 
"1.3.0"`,
+    install: `libraryDependencies += "org.apache.fory" %% "fory-scala" % 
"1.4.0"`,
     codeLanguage: "scala",
     guide: "/docs/guide/scala/",
     summary: "Scala builds on Fory Java with optimized serializers for case 
classes, collections, tuples, and Option.",
@@ -377,8 +377,8 @@ val out = fory.deserialize(payload).asInstanceOf[Person]`,
     id: "kotlin",
     label: "Kotlin",
     installLanguage: "kotlin",
-    install: `implementation("org.apache.fory:fory-kotlin:1.3.0")
-ksp("org.apache.fory:fory-kotlin-ksp:1.3.0")`,
+    install: `implementation("org.apache.fory:fory-kotlin:1.4.0")
+ksp("org.apache.fory:fory-kotlin-ksp:1.4.0")`,
     codeLanguage: "kotlin",
     guide: "/docs/guide/kotlin/",
     summary: "Kotlin adds data-class support, Android guidance, and KSP static 
serializers for xlang/schema mode.",
diff --git a/src/pages/download/index.md b/src/pages/download/index.md
index 0de8daf357..682389a684 100644
--- a/src/pages/download/index.md
+++ b/src/pages/download/index.md
@@ -9,11 +9,11 @@ For binary install, please see Apache Fory™ 
[install](/docs/start/install/) do
 
 ## The latest release
 
-The latest source release is 1.3.0:
+The latest source release is 1.4.0:
 
 | Version | Date       | Source                                                
                                                                                
                                                                                
                                                              | Release Notes   
                                                     |
 | ------- | ---------- | 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | -------------------------------------------------------------------- |
-| 1.3.0   | 2026-06-25 | 
[source](https://www.apache.org/dyn/closer.lua/fory/1.3.0/apache-fory-1.3.0-src.tar.gz?action=download)
 
[asc](https://downloads.apache.org/fory/1.3.0/apache-fory-1.3.0-src.tar.gz.asc) 
[sha512](https://downloads.apache.org/fory/1.3.0/apache-fory-1.3.0-src.tar.gz.sha512)
 | [release notes](https://github.com/apache/fory/releases/tag/v1.3.0) |
+| 1.4.0   | 2026-07-20 | 
[source](https://www.apache.org/dyn/closer.lua/fory/1.4.0/apache-fory-1.4.0-src.tar.gz?action=download)
 
[asc](https://downloads.apache.org/fory/1.4.0/apache-fory-1.4.0-src.tar.gz.asc) 
[sha512](https://downloads.apache.org/fory/1.4.0/apache-fory-1.4.0-src.tar.gz.sha512)
 | [release notes](https://github.com/apache/fory/releases/tag/v1.4.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 `.tar.gz` file and its associated 
`.tar.gz.sha512` file. An example command:
 
 ```bash
-sha512sum --check apache-fory-1.3.0-src.tar.gz.sha512
+sha512sum --check apache-fory-1.4.0-src.tar.gz.sha512
 ```
 
 It should output something like:
 
 ```bash
-apache-fory-1.3.0-src.tar.gz: OK
+apache-fory-1.4.0-src.tar.gz: OK
 ```
 
 ### Verifying Signatures
@@ -54,7 +54,7 @@ gpg --import KEYS
 Then you can verify signature:
 
 ```bash
-gpg --verify apache-fory-1.3.0-src.tar.gz.asc apache-fory-1.3.0-src.tar.gz
+gpg --verify apache-fory-1.4.0-src.tar.gz.asc apache-fory-1.4.0-src.tar.gz
 ```
 
 If something like the following appears, it means the signature is correct:


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to