跳到內容

致謝與歸屬

En Parlant~ 是 En Croissant(「終極西洋棋工具箱」)的分支版本——一個使用 Tauri(Rust + React/TypeScript)建構的跨平台開源西洋棋圖形介面。本文件列出了每一位讓此軟體得以實現的個人、團隊、組織和專案,從核心應用程式框架到個別字型、圖示和棋子 SVG。

整個專案採用 GPL-3.0 授權,這是由 Niklas Fiekas 和 Lichess 團隊所撰寫的關鍵西洋棋函式庫(chessground、chessops、shakmaty)的著作權授權要求所驅動。兩位關鍵人物——Niklas FiekasThibault Duplessis——幾乎負責了整個開源西洋棋基礎設施,從棋盤渲染到走步生成再到謎題資料庫,使 En Parlant~ 得以實現。

Francisco Salgueiro 是 En Croissant 的唯一創建者和主要維護者。他撰寫了橫跨 23 個以上版本中 1,302 筆以上提交的絕大部分。該專案已獲得 1,400 個以上的 GitHub 星標和 199 個分支,擁有 46 位基於提交的貢獻者,以及 56 位以上在發行說明中被致謝的個人。

En Croissant 是一個使用 TypeScript(87.7%)和 Rust(11.9%)編寫的 Tauri 2 桌面應用程式。它支援多引擎分析、從 Lichess 和 Chess.com 匯入對局、使用間隔重複法的開局練習訓練、具備局面搜尋功能的資料庫管理,以及謎題訓練。Francisco 親自處理 React 前端架構、用於資料庫操作和引擎通訊的 Rust 後端,以及整體產品願景。他透過 Buy Me a Coffeeencroissant.org/support 接受捐款。

En Parlant~(由 @DarrellThomas 開發)是一個新增文字轉語音(TTS)旁白功能的分支——整合了 ElevenLabs 和 Google Cloud 的文字轉語音評論功能、KittenTTS 用於本機裝置端合成,以及 Cloudflare R2 用於音訊託管。

Francisco Salgueiro ——創建者、架構師,以及所有功能的主要維護者,包括 Tauri 2 遷移、React 19 遷移、開局練習系統和資料庫引擎。

  • @spinward ——隱藏目前謎題評等的選項
  • @anderslundback ——棋盤走步捲動設定
  • @yuval59 ——程式碼貢獻(En Croissant v0.10.0)
  • @Cankyre ——與引擎對弈時的悔棋功能;循環瀏覽妙著/失誤/嚴重失誤
  • @tblrone ——終止引擎按鈕
  • @pnodet ——程式碼貢獻(En Croissant v0.10.0)
  • @Count-MHM ——程式碼貢獻(En Croissant v0.11.0)
  • @Scoutboy06 ——程式碼貢獻(En Croissant v0.11.0)
  • @Selyss ——程式碼貢獻(En Croissant v0.11.0)
  • @RainRat ——程式碼貢獻(En Croissant v0.11.0)
  • @zackschuster ——程式碼貢獻(En Croissant v0.11.0)
  • @loloof64 ——棋盤截圖功能
  • @JayceFFT ——跳至下一題的切換功能
  • @archimag ——持久化資料庫頁面狀態、報告進度條、Tauri 功能設定
  • @LiberaTeMetuMortis ——分析中搜尋對局結果的選項;土耳其語翻譯
  • @teleginpro ——對局報告的持久化設定
  • @alextaconet ——設定中預覽棋子組
  • @buracchi ——改進使用者頁面統計資料;Lichess 工作階段認證修復
  • @TurtleOrangina ——「失誤」的走步標注;視窗大小持久化修復
  • @kimerikal-games ——新手標注著色;韓語翻譯;可翻譯字串
  • @PeterLombaers ——單行評論內嵌顯示
  • @mtwdev ——OP1 局面的殘局表
  • @BlueManCZ ——Linux 上的音訊播放修復
  • @tweezerticle ——Chess.com 匯入修復;走步-棋子同步修復
語言貢獻者
中文@chuigda
葡萄牙語@franciscoBSalgueiro
西班牙語@yako1984@dav1312
法語@PaulJeFi
義大利語@MrPiada
俄語@artemy
挪威語(書面語)@TBestLittleHelper
土耳其語@LiberaTeMetuMortis
德語@eskopp
韓語@kimerikal-games

@garbidge@pmyszka@powy-e —— En Croissant v0.10.0 之前的貢獻。

Tauri —— Rust/WebView 桌面應用程式框架——由 Daniel Thompson-YvetotLucas Nogueira 於 2019 年共同創立,由 The Commons Conservancy 旗下的 The Tauri Programme 維護。主要貢獻者包括 Amr BashirFabianLars。授權為 Apache-2.0 OR MIT

ReactJordan Walke 於 2013 年在 Facebook 創建,由 Meta Open Source 維護。主要貢獻者包括 Dan AbramovAndrew ClarkSebastian MarkbageSophie AlpertBrian Vaughn。授權為 MIT

ViteEvan You(同時也是 Vue.js 的創建者)創建,由 VoidZero Inc. 開發。主要貢獻者包括 PatakAnthony FuBjorn Lu。授權為 MIT

TypeScriptAnders Hejlsberg(同時也是 C# 和 Turbo Pascal 的創建者)在 Microsoft 創建。授權為 Apache-2.0

西洋棋專用函式庫與 Niklas Fiekas 生態系統

Section titled “西洋棋專用函式庫與 Niklas Fiekas 生態系統”

Niklas Fiekas 可以說是現代開源西洋棋程式生態系統中最重要的單一貢獻者。他撰寫了 En Parlant~ 在前端和後端使用的所有核心西洋棋邏輯函式庫:

  • chessops —— 用於前端的 TypeScript 西洋棋與變體規則函式庫。授權為 GPL-3.0-or-later
  • shakmaty —— 用於後端的 Rust 西洋棋函式庫,提供走步生成、FEN/SAN/UCI 記譜法、位元棋盤和 Zobrist 雜湊。授權為 GPL-3.0-or-later
  • pgn-reader —— 以 Rust 編寫的快速、無記憶體分配、串流式 PGN 解析器。授權為 GPL-3.0-or-later
  • shakmaty-syzygy —— 用於查詢 Syzygy 殘局表的 Rust 函式庫。授權為 GPL-3.0-or-later

Niklas Fiekas 同時也是 python-chess(最主流的 Python 西洋棋函式庫)的作者,以及 Lichess 生態系統的核心貢獻者。他對這些函式庫採用的 GPL-3.0 授權,將著作權授權要求傳遞到了 En Parlant~ 本身。

Lichess 生態系統與 Thibault Duplessis

Section titled “Lichess 生態系統與 Thibault Duplessis”

Thibault Duplessis 創立了 Lichess.org——最大的免費開源西洋棋伺服器。Lichess 專案為 En Parlant~ 貢獻了多個元件:

  • Chessground —— 互動式西洋棋棋盤 UI 元件,具備自訂 DOM 差異比對、SVG 箭頭繪製、拖放操作、預走步和純 CSS 主題功能。壓縮後約 10KB,零依賴。授權為 GPL-3.0-or-later
  • Lichess API —— 用於匯入使用者對局、存取雲端評估和查詢開局瀏覽器。屬於 AGPL-3.0 Lichess 專案的一部分。
  • Lichess 對局資料庫 —— 數十億局 PGN 格式的對局,每月發布。授權為 CC0(公共領域)。
  • Lichess 謎題資料庫 —— 使用 Stockfish NNUE 從 6 億局已分析對局中產生的 460 萬以上謎題。授權為 CC0
  • 棋子 SVG 和棋盤主題 —— 來自 Lichess 靜態資源集合,採用各種授權(請參閱下方棋子組章節)。

En Parlant~ 支援任何 UCI 相容引擎,並提供多個引擎的一鍵安裝:

應用程式中顯示的引擎評等來源為 CCRL(電腦西洋棋等級列表),由 Graham Banks、Kirill Kryukov、Sergio Martinez、Gabor Szots、Shaun Brewer 等人自 2005 年 12 月起維護。

主要來自 Lichess 資源集合:

  • cburnett(預設)—— 由 Colin M.L. Burnett 製作。使用 Inkscape 創建的清晰、易辨識 SVG 棋子。多重授權:BSD-3-Clause、GFDL、GPL、CC-BY-SA-3.0。同時也作為應用程式圖示的基礎。
  • KosalPhilatype 製作——CC BY 4.0
  • Alpha —— 由 Eric Bentzen 製作。簡潔的現代設計。
  • Merida —— 基於經典 Merida 西洋棋字型,SVG 改編版由 Lichess 社群維護。授權為 GPLv2+
  • California —— 由 Jerry S. 製作。授權為 CC-BY-SA-4.0
  • Anarcandy —— 由 Lichess 社群貢獻者製作。
  • chessnut、chess7、companion、letter、shapes、pixel、pirouetti、cardinal、disguised、dubrovny、fantasy、fresca、gioco、governor、horsey、icpieces、Leipzig、libra、maestro、reillycraig、riohacha、spatial、staunty、tatiana —— 來自 Lichess 及其各自的創作者,以 CC BY-SA 3.0 或相容授權發布。
資料庫對局數量創建者 / 策展人
Lumbra’s Gigabase約 957 萬Lumbra(社群策展人)
Caissabase 2024約 540 萬社群從 MillionBase、KingBase 和 TWIC 策展
Ajedrez Data(實戰)約 428 萬Ajedrez Data 社群
Ajedrez Data(通信賽)約 152 萬Ajedrez Data 社群
MillionBase約 345 萬Ed Schroder(Rebel 西洋棋引擎作者)及社群

Syzygy 殘局表 —— 由 Ronald de Man 創建,7 子殘局表由 Bojun Guo(2018 年)生成。由 Lichess.org 提供下載託管。

ChessDB Cloud(chessdb.cn)—— 由 Bojun Guo 開發。一個由引擎分析建構的大型西洋棋知識資料庫。釋出為公共領域

  • KittenTTS 由 KittenML 開發——預設的本地 TTS 引擎,隨應用程式捆綁。完全在裝置上執行,無需 API 金鑰。透過 ONNX Runtime 使用 ONNX 語音模型,並使用 eSpeak NG 進行音素化。
  • OpenTTS 由 Michael Hansen (synesthesiam) 開發——可選的自架 TTS 伺服器,透過 Docker 在本地執行。
  • Google Cloud Text-to-Speech —— 可選的雲端 TTS 供應商,提供 WaveNet 語音。需要使用者自行提供 API 金鑰。
  • ElevenLabs —— 可選的高級雲端 TTS 供應商,提供高品質語音。需要使用者自行提供 API 金鑰。

Mantine 生態系統(全部由 Vitaly Rtishchev 開發,MIT 授權)

Section titled “Mantine 生態系統(全部由 Vitaly Rtishchev 開發,MIT 授權)”

Vitaly Rtishchev 創建並維護整個 Mantine 元件庫——30,600 個以上星標、100 個以上元件、50 個以上 hooks。

@mantine/core@mantine/hooks@mantine/form@mantine/notifications@mantine/spotlight@mantine/dates@mantine/modals@mantine/carousel@mantine/tiptap@mantine/nprogress@mantine/dropzone@mantine/code-highlightpostcss-preset-mantine

Tauri npm 套件(The Tauri Programme,Apache-2.0 OR MIT)

Section titled “Tauri npm 套件(The Tauri Programme,Apache-2.0 OR MIT)”

@tauri-apps/api@tauri-apps/cli@tauri-apps/plugin-dialog@tauri-apps/plugin-shell@tauri-apps/plugin-process@tauri-apps/plugin-os@tauri-apps/plugin-log@tauri-apps/plugin-updater

TanStack(全部由 Tanner Linsley 開發,MIT 授權)

Section titled “TanStack(全部由 Tanner Linsley 開發,MIT 授權)”

Tanner Linsley 創建了 TanStack 生態系統:@tanstack/react-query(非同步資料擷取/快取)、@tanstack/react-table(無頭表格/資料網格)、@tanstack/react-virtual(清單虛擬化)。

TipTap 富文本編輯器(Tiptap GmbH,MIT 授權)

Section titled “TipTap 富文本編輯器(Tiptap GmbH,MIT 授權)”

Tiptap GmbH 創建。@tiptap/react、@tiptap/starter-kit、@tiptap/extension-link。

套件作者授權
react、react-domJordan Walke / MetaMIT
react-router-domRyan FlorenceMichael Jackson / Remix SoftwareMIT
react-i18next、i18nextJan MuhlemannMIT
套件作者授權
zustandPaul Henschel(原作者)、Daishi Kato(主要維護者)/ pmndrsMIT
framer-motionMatt Perry / Motion DivisionMIT
embla-carousel-reactDavid JerlekeMIT
套件作者授權
chess.jsJeff HlywaBSD-2-Clause
chessgroundThibault Duplessis / Lichess.orgGPL-3.0-or-later
chessopsNiklas Fiekas (niklasf)GPL-3.0-or-later
套件作者授權
dayjsiamkunMIT
fuse.jsKiro RiskApache-2.0
idb-keyvalJake ArchibaldApache-2.0
rechartsXian Wang 及社群,基於 D3 建構MIT
sql.jsOphir LojkineAlon ZakaiMIT
套件作者授權
@biomejs/biomeEmanuele Stoppa(從 Sebastian McKenzie 的 Rome 分支而來)MIT OR Apache-2.0
@vitejs/plugin-reactEvan You / Vite 團隊MIT
postcssAndrey Sitnik / Evil MartiansMIT
typescriptAnders Hejlsberg / MicrosoftApache-2.0
viteEvan You / VoidZero Inc.MIT

所有 Tauri crate(tauritauri-buildtauri-plugin-logtauri-plugin-dialogtauri-plugin-shelltauri-plugin-processtauri-plugin-ostauri-plugin-updater)由 The Tauri Programme 開發。授權為 Apache-2.0 OR MIT

序列化(David Tolnay 的生態系統)

Section titled “序列化(David Tolnay 的生態系統)”

David Tolnay 維護 160 個以上的 Rust crate,負責 Rust 生態系統中一些最基礎的函式庫。crates.io 上約 40% 的 crate 間接依賴 serde。

Crate作者授權
serdeErick TryzelaarDavid TolnayMIT OR Apache-2.0
serde_jsonDavid TolnayMIT OR Apache-2.0
thiserrorDavid TolnayMIT OR Apache-2.0
anyhowDavid TolnayMIT OR Apache-2.0
Crate作者授權
tokioCarl LercheAlice RyhlSean McArthurEliza WeismanMIT
reqwestSean McArthurMIT OR Apache-2.0
futures / futures-utilAlex CrichtonMIT OR Apache-2.0
Crate授權說明
shakmatyGPL-3.0-or-later西洋棋走步生成、位元棋盤、FEN/SAN/UCI
pgn-readerGPL-3.0-or-later串流式 PGN 解析器
shakmaty-syzygyGPL-3.0-or-laterSyzygy 殘局表查詢
Crate作者授權
rusqliteJohn Gallagher(原作者)/ rusqlite 開發者MIT
logThe Rust Project DevelopersMIT OR Apache-2.0
tempfileSteven AllenMIT OR Apache-2.0
dirsSimon OchsenreitherMIT OR Apache-2.0
flate2Alex CrichtonJosh TriplettMIT OR Apache-2.0
zipMathijs van de Nes、Marli Frost、Ryan LevickMIT
  • Tabler Icons —— 由 Pawel Kuna 製作的 6,000 個以上免費 SVG 圖示。透過 @tabler/icons-react 作為 Mantine 生態系統的一部分使用。授權為 MIT
  • CodeMirror —— 由 Marijn Haverbeke(同時也是 ProseMirror 的創建者及《Eloquent JavaScript》的作者)開發的瀏覽器內程式碼編輯器,Adrian Heine 亦有貢獻。用於 PGN 編輯。授權為 MIT
  • Inter —— UI 字型,由 Rasmus Andersson 創建。一款針對螢幕可讀性最佳化的可變字型。作為 Mantine 的預設字型家族使用。授權為 SIL Open Font License 1.1
  • 西洋棋記譜字型(lichess.chess)—— 由 pgn4web 作者製作,提供圖形化代數記譜符號。授權為 GPLv2+

En Parlant~ 分支——包括其 TTS 整合、文件網站、多語言翻譯、展示管線及本致謝頁面——幾乎完全使用 Claude Code(Anthropic 的代理式程式開發工具)建構。Claude Code 使用 Claude(Anthropic 的 AI 助手)直接在終端機中工作——讀取檔案、編輯程式碼、執行指令和管理 git 工作流程。

Anthropic 於 2021 年由 Dario AmodeiDaniela Amodei 以及數位前 OpenAI 研究人員共同創立,專注於 AI 安全研究。Claude 是他們的大型語言模型系列。

  • Lichess API —— 由 Thibault Duplessis 和 Lichess 團隊維護。對局匯出、雲端評估、開局瀏覽器和謎題資料。屬於 AGPL-3.0 Lichess 專案的一部分。
  • Chess.com Published-Data API —— 唯讀 REST API,用於公開玩家檔案、對局存檔和俱樂部/錦標賽資料。
  • ChessDB Cloud Evaluation —— 由 Bojun Guo 開發。由引擎分析建構的西洋棋知識資料庫。公共領域
  • Stockfish —— 引擎二進位檔託管在我們自己的基礎設施上(enparlant.redshed.ai)。
  • Lichess —— 開局資料庫和謎題資料庫,託管在我們自己的基礎設施上。CC BY 4.0

En Parlant~ 採用 GPL-3.0 授權,這是由其西洋棋依賴項的著作權授權連鎖所要求的:

授權套件 / 元件
GPL-3.0 / GPL-3.0-or-laterEn Parlant~ 本身、chessground、chessops、shakmaty、pgn-reader、shakmaty-syzygy、Stockfish、Lc0、RubiChess、Fairy-Stockfish、Merida 棋子、西洋棋記譜字型
MITReact、Vite、Mantine(全部)、TanStack(全部)、TipTap(全部)、zustand、framer-motion、embla-carousel、dayjs、recharts、sql.js、Tabler Icons、CodeMirror、Node.js、pnpm、tokio、rusqlite、PostCSS
MIT OR Apache-2.0Tauri(全部)、Rust 語言、serde(全部)、tokio、reqwest、futures、thiserror、anyhow、log、tempfile、dirs、flate2、TypeScript、Biome
BSD-2-Clausechess.js
Apache-2.0fuse.js、idb-keyval
SIL OFL 1.1Inter 字型
CC0(公共領域)Lichess 對局資料庫、Lichess 謎題資料庫
CC-BY-SA-3.0 / 4.0cburnett 棋子、California 棋子、Shapes 棋子組
AGPL-3.0Lichess 主程式碼庫(API 可自由使用)
商業/專有Komodo、Dragon by Komodo(可選引擎,未捆綁)

GPL-3.0 的著作權授權要求意味著任何 En Parlant~ 的發行必須包含原始碼或提供原始碼的書面承諾,且衍生作品也必須採用 GPL-3.0 或相容授權。這主要由 Niklas Fiekas 的西洋棋函式庫和 Lichess 的 Chessground 元件所驅動。

這款軟體的存在歸功於數十個專案中數百位個人的貢獻。三位人物值得特別表彰Francisco Salgueiro 建構了應用程式;Niklas Fiekas 建構了西洋棋邏輯基礎設施(TypeScript 和 Rust 兩端);Thibault Duplessis 建構了西洋棋棋盤 UI 以及提供棋子組、資料庫、謎題和雲端評估的更廣泛 Lichess 生態系統。除了他們之外,David Tolnay 的序列化函式庫支撐了 Rust 後端,Tauri 團隊使桌面框架成為可能,56 位社群貢獻者提供了功能、10 種語言的翻譯和錯誤修復,塑造了這款產品。

每一個被評估的西洋棋局面都歸功於 Stockfish 社群,每一次殘局查詢都歸功於 Ronald de Man 的 Syzygy 殘局表。開源西洋棋生態系統之間有著令人驚嘆的緊密聯繫——像 En Parlant~ 這樣的單一應用程式汲取了跨越二十年的成果,從 Colin M.L. Burnett 2006 年在 Wikimedia 上的 SVG 棋子到 React 19 的編譯器最佳化。

我們遺漏了您嗎?請發送訊息給我們,我們會盡快補上。如果您希望保持匿名,也請告訴我們:darrell@redshed.ai