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/fory-site.git
The following commit(s) were added to refs/heads/main by this push:
new 3c17510c7 docs: update release download workflow (#442)
3c17510c7 is described below
commit 3c17510c7b115925bf1a92a7cce555c292739f1b
Author: Shawn Yang <[email protected]>
AuthorDate: Mon Apr 20 01:57:38 2026 +0800
docs: update release download workflow (#442)
---
.claude/skills/release-major-version/SKILL.md | 85 ++++++++++++++--------
docs/introduction/benchmark.md | 18 ++++-
.../current/introduction/benchmark.md | 14 +++-
.../version-0.17/introduction/benchmark.md | 14 +++-
.../download/index.md | 80 ++++++++++++++++++++
src/pages/download/index.md | 12 +--
.../version-0.17/introduction/benchmark.md | 18 ++++-
7 files changed, 193 insertions(+), 48 deletions(-)
diff --git a/.claude/skills/release-major-version/SKILL.md
b/.claude/skills/release-major-version/SKILL.md
index 46721088d..0086101ad 100644
--- a/.claude/skills/release-major-version/SKILL.md
+++ b/.claude/skills/release-major-version/SKILL.md
@@ -2,11 +2,11 @@
name: release-major-version
description: >-
Prepare the Apache Fory site for a new major-ish docs release such as 0.17:
- write the release blog, checkpoint with git commits, translate the zh-CN
- release blog and docs, create the versioned docs snapshot, update the
- default docs version, and run an independent self-review to catch remaining
- issues. Use when the user asks to cut a new docs/site release version on
- this repository.
+ write the release blog, update the download page, checkpoint with git
+ commits, translate the zh-CN release blog and docs, create the versioned
+ docs snapshot, update the default docs version, and run an independent
+ self-review to catch remaining issues. Use when the user asks to cut a new
+ docs/site release version on this repository.
---
# Release Big Version
@@ -20,12 +20,13 @@ This skill is for the website/docs repository workflow, not
the ASF source relea
This workflow covers:
1. Write the release blog post
-2. Git commit the blog/content checkpoint
-3. Translate the zh-CN release blog and zh-CN docs
-4. Git commit the translation checkpoint
-5. Version the docs with `yarn docusaurus docs:version <version>`
-6. Update the default docs version to the new version
-7. Run a fresh subagent review before calling the work done
+2. Update the English release-facing pages, including the download page and
pinned latest-version references
+3. Git commit the English content checkpoint
+4. Translate the zh-CN release blog and zh-CN docs
+5. Git commit the translation checkpoint
+6. Version the docs with `yarn docusaurus docs:version <version>`
+7. Update the default docs version to the new version
+8. Run a fresh subagent review before calling the work done
## Repository Facts You Must Respect
@@ -37,6 +38,8 @@ This workflow covers:
- Chinese blog posts live in `i18n/zh-CN/docusaurus-plugin-content-blog/`
- Docs version history is recorded in `versions.json`
- The default released docs version is controlled by `docs.lastVersion` in
`docusaurus.config.ts`
+- The latest-release download page lives at `src/pages/download/index.md`
+- Localized page translations live under
`i18n/zh-CN/docusaurus-plugin-content-pages/`
- The wrapped versioning command is `yarn docusaurus docs:version <ver>`,
which calls `scripts/docusaurus-with-i18n.sh`
- The wrapper copies every locale's `current/` docs tree to `version-<ver>/`
after Docusaurus versions the English docs
@@ -63,6 +66,8 @@ This workflow covers:
- `docusaurus.config.ts`
- `versions.json`
- `scripts/docusaurus-with-i18n.sh`
+ - `src/pages/download/index.md`
+ - `i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md` if it
exists
2. Confirm the current latest released version, the target new version, and
the previous released version that will become the explicit older-version route
after the cut.
3. Verify the site repo already contains the intended upstream docs state from
`apache/fory` before you start. Do not assume the release only touches
`docs/guide`.
- compare current `docs/` against
`versioned_docs/version-<previous-version>/` to discover the actual English doc
delta for this release
@@ -99,36 +104,43 @@ This workflow covers:
7. If you add benchmark images, ensure the referenced static paths and copied
files match exactly.
8. Validate the post for obvious copy/paste errors from the previous release.
-## Step 1A: Bump Versioned References in Current Docs
+## Step 1A: Bump Versioned References in Current Docs and the Download Page
-Before translating the zh-CN blog/docs or freezing the docs version, update
all pinned current-doc references to the new release version.
+Before translating the zh-CN blog/docs or freezing the docs version, update
all pinned current-doc references and release-facing site pages to the new
release version.
Required targets:
1. `docs/start/install.md`
2. `docs/guide/**/index.md` for each language/runtime that includes versioned
install or dependency examples
3. other current guide pages with pinned version examples, dependency strings,
or install snippets
-4. any other current docs page that still advertises the previous release as
the recommended install version
+4. `src/pages/download/index.md`
+5. any other current docs page that still advertises the previous release as
the recommended install version
Minimum workflow:
1. Replace the previous release version with the new release version in
`docs/start/install.md`
2. Scan all current docs for pinned release strings and update them where they
describe the latest recommended version
3. Explicitly inspect `docs/guide/**/index.md` because these pages often carry
language-specific install snippets and versioned dependency examples
-4. Update every latest-version reference before `yarn docusaurus docs:version
<version>` so the frozen snapshot inherits the correct release version
-5. Be especially suspicious of:
+4. Update `src/pages/download/index.md` so the page advertises the new release
correctly:
+ - update the "latest release" version and release date
+ - update source, `.asc`, and `.sha512` URLs to the new artifact path
+ - update the release-notes link
+ - update checksum/signature example filenames and commands if they still
reference the previous release
+5. Update every latest-version reference before `yarn docusaurus docs:version
<version>` so the frozen snapshot inherits the correct release version
+6. Be especially suspicious of:
- Maven/Gradle coordinates
- `pip install`, `go get`, `cargo add`, `dotnet add package`
- Bazel dependency examples
- language-guide install snippets under `docs/guide/**`
- language `index.md` pages under `docs/guide/**/index.md`
-6. Finish all of these English/current-doc version updates before starting
zh-CN translation, so the Chinese docs/blog are translated once from the final
English source rather than patched twice
-7. Do this before `yarn docusaurus docs:version <version>` so the released
snapshot freezes the correct install guidance
+ - `src/pages/download/index.md` release tables, artifact filenames, and
verification examples
+7. Finish all of these English/current-doc version updates before starting
zh-CN translation, so the Chinese docs/blog are translated once from the final
English source rather than patched twice
+8. Do this before `yarn docusaurus docs:version <version>` so the released
snapshot freezes the correct install guidance and the site advertises the
correct latest release
-## Step 2: Git Commit the Blog Checkpoint
+## Step 2: Git Commit the English Release Checkpoint
-1. Review the diff for the new blog post and any new assets.
-2. Make a focused git commit for the blog/release-post changes.
+1. Review the diff for the new blog post, `src/pages/download/index.md`, any
current-doc version bumps, and any new assets.
+2. Make a focused git commit for the English release-site changes.
3. Do not bundle unrelated generated files into this commit.
## Step 3: Translate zh-CN Docs
@@ -137,21 +149,26 @@ Minimum workflow:
- Prefer repo-local `.agents/skills/translate-docs-zh/SKILL.md` if it exists
- Otherwise use `.claude/skills/translate-docs-zh/SKILL.md`
2. Start this step only after the English release blog and all current-doc
version bumps are final.
-3. Translate or sync the zh-CN release blog:
+3. If the site maintains a localized zh-CN download page, translate or sync it
from the final English download page:
+ - source: `src/pages/download/index.md`
+ - target: `i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md`
+ - keep release version, release date, artifact URLs, release-notes link,
and verification examples aligned with English
+ - if the zh-CN download page is expected but missing, create it during the
release instead of silently leaving `/zh-CN/download` stale
+4. Translate or sync the zh-CN release blog:
- source: `blog/<release-file>.md`
- target: `i18n/zh-CN/docusaurus-plugin-content-blog/<release-file>.md`
- preserve frontmatter structure and blog metadata unless a localized
change is needed
- keep blog asset paths aligned with the English source unless there is a
deliberate zh-only asset change
-4. Translate or sync the zh-CN docs for the doc changes that should ship with
the new release.
+5. Translate or sync the zh-CN docs for the doc changes that should ship with
the new release.
- primary path mapping: `docs/<subpath>` ->
`i18n/zh-CN/docusaurus-plugin-content-docs/current/<subpath>`
- do not limit this to `docs/guide/**`
- translate or sync every changed English doc in the release-doc scope
relative to `versioned_docs/version-<previous-version>/`
- this includes changed files under `docs/benchmarks/**`,
`docs/community/**`, `docs/compiler/**`, `docs/guide/**`,
`docs/introduction/**`, `docs/specification/**`, and `docs/start/**`
- if a changed English current doc has no matching zh-CN current update
before versioning, treat that as a blocking gap unless the file is
intentionally English-only and documented as such
-5. Follow the translation skill's hard rule: no external translation tools or
services.
-6. If top-level category labels changed, also update:
+6. Follow the translation skill's hard rule: no external translation tools or
services.
+7. If top-level category labels changed, also update:
- `i18n/zh-CN/docusaurus-plugin-content-docs/current.json`
-7. If the release needs localized version metadata, plan a manual follow-up
for `i18n/zh-CN/docusaurus-plugin-content-docs/version-<version>.json`; the
versioning wrapper does not create it.
+8. If the release needs localized version metadata, plan a manual follow-up
for `i18n/zh-CN/docusaurus-plugin-content-docs/version-<version>.json`; the
versioning wrapper does not create it.
## Step 4: Git Commit the zh-CN Checkpoint
@@ -224,6 +241,8 @@ Recommended route checks when the build is usable:
- `/`
- `/docs`
- `/zh-CN/docs`
+- `/download`
+- `/zh-CN/download`
- `/docs/<previous-version>/`
- `/zh-CN/docs/<previous-version>/`
- `/blog`
@@ -232,10 +251,14 @@ Recommended route checks when the build is usable:
Also run targeted checks:
- parameterize stale-version scans using the actual old/new versions instead
of hard-coded values
-- scan at least: `blog`, `docs`, `versioned_docs/version-<version>`, and
`i18n/zh-CN/docusaurus-plugin-content-docs`
+- scan at least: `blog`, `docs`, `src/pages/download/index.md`,
`i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md`,
`versioned_docs/version-<version>`, and
`i18n/zh-CN/docusaurus-plugin-content-docs`
- for example, search for the previous release string, older release strings
likely to be copy/paste remnants, and placeholders such as `TODO` / `TBD`
- treat stale latest-version references in current install/docs pages as
blocking, especially in `docs/start/install.md`, `docs/guide/**/index.md`, and
other `docs/guide/**` pages
+- treat stale release numbers, dates, artifact URLs, or verification examples
in `src/pages/download/index.md` as blocking
+- treat stale release numbers, dates, artifact URLs, or verification examples
in `i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md` as blocking
whenever the zh download page exists or should exist
- confirm release blog asset paths exist under
`static/img/blog/fory_<version>_release/`
+- confirm the download page's source, signature, checksum, archive, and
release-notes links match the intended new release
+- confirm the zh-CN download page, if present, is semantically aligned with
the English page and links to the expected zh-CN install route
- compare the release-doc scope against the previous release snapshot so you
do not miss changed docs outside `guide/` such as `compiler/generated-code.md`
- for each changed English current doc in the release-doc scope, verify
whether the matching zh current doc is updated, missing, or intentionally left
as English fallback
- if any changed doc under `benchmarks/`, `community/`, `compiler/`, `guide/`,
`introduction/`, `specification/`, or `start/` is missing from zh current,
treat that as unfinished release work rather than optional follow-up
@@ -252,9 +275,11 @@ The review should check at least:
4. Are the zh-CN release blog and English release blog both present and
consistent with the intended release state?
5. Are blog asset paths and benchmark links valid?
6. Are there any obvious missing follow-up edits, such as
`docs/start/install.md` or guide pages with pinned version references that
should move to the new release?
-7. Did the workflow accidentally snapshot stale site docs because upstream
`apache/fory` doc changes were not synced first?
-8. Did any changed English current doc outside `guide/` fail to get translated
or reviewed in zh-CN before versioning, for example under `compiler/`,
`benchmarks/`, `specification/`, `start/`, or `introduction/`?
-9. Does every changed zh current doc in the release-doc scope match the
intended `version-<version>` snapshot, or did the workflow freeze an older zh
current state?
+7. Does `src/pages/download/index.md` advertise the new release correctly,
including version, date, artifact URLs, release-notes link, and verification
examples?
+8. If `/zh-CN/download` is expected, is
`i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md` present and
aligned with the English download page?
+9. Did the workflow accidentally snapshot stale site docs because upstream
`apache/fory` doc changes were not synced first?
+10. Did any changed English current doc outside `guide/` fail to get
translated or reviewed in zh-CN before versioning, for example under
`compiler/`, `benchmarks/`, `specification/`, `start/`, or `introduction/`?
+11. Does every changed zh current doc in the release-doc scope match the
intended `version-<version>` snapshot, or did the workflow freeze an older zh
current state?
Treat review findings as blocking until resolved or explicitly documented.
diff --git a/docs/introduction/benchmark.md b/docs/introduction/benchmark.md
index e559832cc..eb9729544 100644
--- a/docs/introduction/benchmark.md
+++ b/docs/introduction/benchmark.md
@@ -89,8 +89,20 @@ report for details:
https://fory.apache.org/docs/benchmarks/swift/
## JavaScript Benchmark
-<img width="50%" alt="" src="/img/benchmarks/javascript/complex_object.jpg" />
+Fory JavaScript demonstrates strong performance compared to Protocol Buffers
and
+JSON across representative Node.js workloads.
-The data used for this bar graph includes a complex object that has many kinds
of field types, and the size of the JSON data is 3KB.
+<img src="../benchmarks/javascript/throughput.png" width="90%"/>
-See
[benchmarks](https://github.com/apache/fory/blob/main/javascript/benchmark/index.js)
for the benchmark code.
+Note: Results depend on hardware, dataset, and runtime versions. See the
+[JavaScript benchmark report](../benchmarks/javascript/README.md) for details.
+
+## Dart Benchmark
+
+Fory Dart demonstrates strong performance compared to Protocol Buffers across
+representative object and list workloads.
+
+<img src="../benchmarks/dart/throughput.png" width="90%"/>
+
+Note: Results depend on hardware, dataset, and runtime versions. See the
+[Dart benchmark report](../benchmarks/dart/README.md) for details.
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/benchmark.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/benchmark.md
index 17ac2bffb..5103ac2b4 100644
---
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/benchmark.md
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/benchmark.md
@@ -83,8 +83,16 @@ Fory Swift 在标量对象和列表两类工作负载下,相比 Protobuf 和 M
## JavaScript 性能测试
-<img width="50%" alt="" src="/img/benchmarks/javascript/complex_object.jpg" />
+Fory JavaScript 在具有代表性的 Node.js 工作负载下,相比 Protocol Buffers 与 JSON 展现出较强性能表现。
-该柱状图使用的数据包含一个具有多种字段类型的复杂对象,JSON 数据大小为 3KB。
+<img src="../benchmarks/javascript/throughput.png" width="90%"/>
-性能测试代码请参见
[benchmarks](https://github.com/apache/fory/blob/main/javascript/benchmark/index.js)。
+注意:结果取决于硬件、数据集和运行时版本。详细信息请参见 [JavaScript
性能测试报告](../benchmarks/javascript/README.md)。
+
+## Dart 性能测试
+
+Fory Dart 在具有代表性的对象和列表工作负载下,相比 Protocol Buffers 展现出较强性能表现。
+
+<img src="../benchmarks/dart/throughput.png" width="90%"/>
+
+注意:结果取决于硬件、数据集和运行时版本。详细信息请参见 [Dart 性能测试报告](../benchmarks/dart/README.md)。
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.17/introduction/benchmark.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.17/introduction/benchmark.md
index 17ac2bffb..5103ac2b4 100644
---
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.17/introduction/benchmark.md
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.17/introduction/benchmark.md
@@ -83,8 +83,16 @@ Fory Swift 在标量对象和列表两类工作负载下,相比 Protobuf 和 M
## JavaScript 性能测试
-<img width="50%" alt="" src="/img/benchmarks/javascript/complex_object.jpg" />
+Fory JavaScript 在具有代表性的 Node.js 工作负载下,相比 Protocol Buffers 与 JSON 展现出较强性能表现。
-该柱状图使用的数据包含一个具有多种字段类型的复杂对象,JSON 数据大小为 3KB。
+<img src="../benchmarks/javascript/throughput.png" width="90%"/>
-性能测试代码请参见
[benchmarks](https://github.com/apache/fory/blob/main/javascript/benchmark/index.js)。
+注意:结果取决于硬件、数据集和运行时版本。详细信息请参见 [JavaScript
性能测试报告](../benchmarks/javascript/README.md)。
+
+## Dart 性能测试
+
+Fory Dart 在具有代表性的对象和列表工作负载下,相比 Protocol Buffers 展现出较强性能表现。
+
+<img src="../benchmarks/dart/throughput.png" width="90%"/>
+
+注意:结果取决于硬件、数据集和运行时版本。详细信息请参见 [Dart 性能测试报告](../benchmarks/dart/README.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md
b/i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md
new file mode 100644
index 000000000..2245a8d22
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md
@@ -0,0 +1,80 @@
+---
+id: download
+title: 下载
+---
+
+Apache Fory™ 的官方发布以源码制品形式提供。
+
+如需二进制安装,请参见 Apache Fory™ [install](/zh-CN/docs/start/install/) 文档。
+
+## 最新版本
+
+当前最新源码版本为 0.17.0:
+
+| 版本 | 日期 | 源码
| 发布说明
|
+| ------ | ---------- |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| --------------------------------------------------------------- |
+| 0.17.0 | 2026-04-19 |
[source](https://www.apache.org/dyn/closer.lua/fory/0.17.0/apache-fory-0.17.0-src.tar.gz?action=download)
[asc](https://downloads.apache.org/fory/0.17.0/apache-fory-0.17.0-src.tar.gz.asc)
[sha512](https://downloads.apache.org/fory/0.17.0/apache-fory-0.17.0-src.tar.gz.sha512)
| [release notes](https://github.com/apache/fory/releases/tag/v0.17.0) |
+
+## 所有归档版本
+
+如需更早版本,请访问 [archive](https://archive.apache.org/dist/fory)。
+
+## 验证发布文件
+
+强烈建议对下载的文件进行校验。
+
+Fory 为下载站点上的所有文件提供 SHA 摘要和 PGP 签名文件。
+这些文件与对应制品同名,仅额外带有 `.sha512` 或 `.asc` 扩展名。
+
+### 校验 Checksum
+
+要验证 SHA 摘要,你需要 `.tar.gz` 文件及其对应的 `.tar.gz.sha512` 文件。示例命令如下:
+
+```bash
+sha512sum --check apache-fory-0.17.0-src.tar.gz
+```
+
+输出类似下面这样即表示校验通过:
+
+```bash
+apache-fory-0.17.0-src.tar.gz: OK
+```
+
+### 校验签名
+
+要验证 PGP 签名,首先需要下载 [release KEYS](https://downloads.apache.org/fory/KEYS)。
+
+然后导入下载得到的 `KEYS`:
+
+```bash
+gpg --import KEYS
+```
+
+之后可以校验签名:
+
+```bash
+gpg --verify apache-fory-0.17.0-src.tar.gz.asc apache-fory-0.17.0-src.tar.gz
+```
+
+如果出现如下输出,即表示签名正确:
+
+```bash
+gpg: Signature made Sun Feb 9 12:09:36 2025 CST
+gpg: using RSA key F4796001336453FDE7BB45709C0212E28DD7828C
+gpg: Good signature from "Weipeng Wang (CODE SIGNING KEY)
<[email protected]>"
+```
+
+你还应通过如下命令进一步校验该密钥:
+
+```bash
+gpg --fingerprint F4796001336453FDE7BB45709C0212E28DD7828C
+```
+
+输出应类似:
+
+```bash
+pub rsa4096 2025-03-17 [SC]
+ F479 6001 3364 53FD E7BB 4570 9C02 12E2 8DD7 828C
+uid [ultimate] Weipeng Wang (CODE SIGNING KEY)
<[email protected]>
+sub rsa4096 2025-03-17
+```
diff --git a/src/pages/download/index.md b/src/pages/download/index.md
index b8a2320ba..9f0ae8671 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 0.16.0:
+The latest source release is 0.17.0:
| Version | Date | Source
| Release Notes
|
| ------- | ---------- |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| -------------------------------------------------------------------- |
-| 0.16.0 | 2026-03-17 |
[source](https://www.apache.org/dyn/closer.lua/fory/0.16.0/apache-fory-0.16.0-src.tar.gz?action=download)
[asc](https://downloads.apache.org/fory/0.16.0/apache-fory-0.16.0-src.tar.gz.asc)
[sha512](https://downloads.apache.org/fory/0.16.0/apache-fory-0.16.0-src.tar.gz.sha512)
| [release notes](https://github.com/apache/fory/releases/tag/v0.16.0) |
+| 0.17.0 | 2026-04-19 |
[source](https://www.apache.org/dyn/closer.lua/fory/0.17.0/apache-fory-0.17.0-src.tar.gz?action=download)
[asc](https://downloads.apache.org/fory/0.17.0/apache-fory-0.17.0-src.tar.gz.asc)
[sha512](https://downloads.apache.org/fory/0.17.0/apache-fory-0.17.0-src.tar.gz.sha512)
| [release notes](https://github.com/apache/fory/releases/tag/v0.17.0) |
## All archived releases
@@ -28,16 +28,16 @@ These files are named after the files they relate to but
have `.sha512/.asc` ext
### Verifying Checksums
-To verify the SHA digests, you need the `.tgz` and its associated
`.tgz.sha512` file. An example command:
+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-0.16.0-src.tar.gz
+sha512sum --check apache-fory-0.17.0-src.tar.gz
```
It should output something like:
```bash
-apache-fory-0.16.0-src.tar.gz: OK
+apache-fory-0.17.0-src.tar.gz: OK
```
### Verifying Signatures
@@ -54,7 +54,7 @@ gpg --import KEYS
Then you can verify signature:
```bash
-gpg --verify apache-fory-0.16.0-src.tar.gz.asc apache-fory-0.16.0-src.tar.gz
+gpg --verify apache-fory-0.17.0-src.tar.gz.asc apache-fory-0.17.0-src.tar.gz
```
If something like the following appears, it means the signature is correct:
diff --git a/versioned_docs/version-0.17/introduction/benchmark.md
b/versioned_docs/version-0.17/introduction/benchmark.md
index e559832cc..eb9729544 100644
--- a/versioned_docs/version-0.17/introduction/benchmark.md
+++ b/versioned_docs/version-0.17/introduction/benchmark.md
@@ -89,8 +89,20 @@ report for details:
https://fory.apache.org/docs/benchmarks/swift/
## JavaScript Benchmark
-<img width="50%" alt="" src="/img/benchmarks/javascript/complex_object.jpg" />
+Fory JavaScript demonstrates strong performance compared to Protocol Buffers
and
+JSON across representative Node.js workloads.
-The data used for this bar graph includes a complex object that has many kinds
of field types, and the size of the JSON data is 3KB.
+<img src="../benchmarks/javascript/throughput.png" width="90%"/>
-See
[benchmarks](https://github.com/apache/fory/blob/main/javascript/benchmark/index.js)
for the benchmark code.
+Note: Results depend on hardware, dataset, and runtime versions. See the
+[JavaScript benchmark report](../benchmarks/javascript/README.md) for details.
+
+## Dart Benchmark
+
+Fory Dart demonstrates strong performance compared to Protocol Buffers across
+representative object and list workloads.
+
+<img src="../benchmarks/dart/throughput.png" width="90%"/>
+
+Note: Results depend on hardware, dataset, and runtime versions. See the
+[Dart benchmark report](../benchmarks/dart/README.md) for details.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]