Clojure 是主控層級專案,承載許多額外的函式庫,稱為「Clojure 貢獻」,這些函式庫都存在於 GitHub 上的 Clojure 組織 中。
這些函式庫使用與 Clojure 相同的貢獻模式(貢獻者協議、授權和著作權),以及由 Clojure 核心團隊維護的共用基礎架構
每個專案都有一個或多個擁有者(通常是社群成員),他們決定函式庫的方向、分類修補程式等。專案擁有者擁有完整的提交權限,並在建置匣上經過驗證後可以存取其專案以進行版本發布。
貢獻函式庫是開放原始碼函式庫,就像任何其他開放原始碼 Clojure 函式庫一樣。它們的開發活動和品質差異很大,在整體生態系統中,它們可能不是其功能的最佳替代方案。在使用之前,您應該評估它們,就像您會評估任何打算用作依賴項的開放原始碼函式庫一樣。
如果您發現某個函式庫的活躍開發已停止,而您想接手成為擁有者,請聯絡 clojure@cognitect.com。函式庫的良好管理者通常是積極使用該函式庫且了解該功能目標和替代方案的人。
狀態圖例
活躍 - 處於活躍的定期開發中
穩定 - 正在運作中,但開發不定期
不活躍 - 不再開發中,將不再進行開發
函式庫 | 說明 | 擁有者 | 狀態 |
---|---|---|---|
常見函式的泛型版本 |
Konrad Hinsen |
穩定 |
|
Monad 巨集和定義 |
Konrad Hinsen |
穩定 |
|
非同步程式設計和通訊的工具 |
Rich Hickey |
活躍 |
|
實作各種快取策略的快取函式庫 |
Sean Corfield |
活躍 |
|
在 Clojure 中進行合約程式設計 |
Fogus |
不活躍 |
|
建議納入核心中的函式 |
不活躍 |
||
基於 miniKanren 的邏輯程式設計函式庫 |
David Nolen |
穩定 |
|
模式比對和謂詞分派 |
David Nolen |
穩定 |
|
可操作、可插入的記憶化架構 |
Sean Corfield |
活躍 |
|
基於 RRB 樹的向量 |
Michał Marczyk、Andy Fingerhut |
活躍 |
|
漸進式型別 |
Ambrose Bonnaire-Sargent |
活躍 |
|
統一函式庫 |
Fogus |
穩定 |
|
AVL 樹 |
Michał Marczyk |
穩定 |
|
原生編解碼器實作 |
Alexander Taggart |
穩定 |
|
讀取和寫入 CSV 檔案 |
Jonas Enlund |
穩定 |
|
手指樹 |
Chouser |
穩定 |
|
可擴充二進位資料表示法 |
Stuart Halloway |
穩定 |
|
隨機資料產生器 |
Stuart Halloway |
不活躍 |
|
針對整數鍵最佳化的映射和集合 |
Alex Miller |
穩定 |
|
JSON 編碼/解碼 |
Alessandra Sierra |
穩定 |
|
優先權映射 |
Mark Engelberg |
穩定 |
|
延遲 XML 解析 |
Ryan Senior、Herwig Hochleitner |
穩定 |
|
操作拉鍊 |
穩定 |
||
類別路徑實用程式 |
Alessandra Sierra |
穩定 |
|
使用 Java Beans |
Sean Corfield |
活躍 |
|
基於 JDBC 的 SQL 介面 |
Sean Corfield |
穩定 |
|
JMX 介面 |
Nick Bailey |
穩定 |
|
常見組合函式的惰性序列 |
Mark Engelberg |
穩定 |
|
數學函式和數字塔 |
Mark Engelberg |
穩定 |
|
屬性測試架構 |
Alex Miller |
活躍 |
|
測試資料產生和執行套件 |
Stuart Halloway |
不活躍 |
|
Clojure 程式碼的分析器架構 |
Nicola Mometto |
活躍 |
|
tools.analyzer 的 JVM 特定傳遞 |
Nicola Mometto |
活躍 |
|
用於撰寫 Clojure 建置程式的函式 |
Alex Miller |
活躍 |
|
命令列引數處理器 |
Sean Corfield |
活躍 |
|
deps 作為資料和類別路徑建構 |
Alex Miller |
活躍 |
|
供 Clojure CLI 使用的 deps 函式 |
Alex Miller |
活躍 |
|
為 deps.edn 專案建立相依圖 |
Alex Miller |
活躍 |
|
用於擷取、快取和使用基於 git 的專案的工具 |
Alex Miller |
活躍 |
|
JVM 位元組碼產生器 |
Nicola Mometto |
活躍 |
|
記錄工具 |
Alexander Taggart |
活躍 |
|
巨集撰寫者的工具 |
Konrad Hinsen |
穩定 |
|
用於處理命名空間宣告的工具 |
Alessandra Sierra |
穩定 |
|
網路 REPL |
不活躍 |
||
Clojure 讀取器 |
Nicola Mometto |
活躍 |
|
用於管理 CLI 工具的 Clojure CLI 工具 |
Alex Miller |
活躍 |
|
執行追蹤 |
Luc Prefontaine |
穩定 |
此外,下列函式庫是 Clojure 本身由核心團隊直接管理的相依項。這些函式庫使用與 Contrib 函式庫相同的共用基礎架構,因此在很大程度上是相同的。這些函式庫的開發通常與核心語言本身的開發相關。
core.specs.alpha clojure.core 的規格
spec.alpha使用規格描述資料和函式的結構
spec-alpha2 規格的開發中下一版本
最後,Clojure GitHub 組織中有一些儲存庫根本不是函式庫
clojure-site - 這個網站,請參閱 網站貢獻
brew-install - clj
安裝程式組建
build.ci - Jenkins 專案建構器,適用於貢獻
build.poms - Maven 超級 pom,適用於貢獻函式庫
clojure-api-doc - Clojure api 文件建構器
contrib-api-doc - 貢獻函式庫 api 文件建構器
在 Clojure 1.3 之前,Clojure 有一個單一的「包含電池」函式庫,稱為 clojure-contrib,其中包含許多獨立的輔助命名空間,由社群貢獻。在 Clojure 1.3 的時間範圍內,此函式庫被拆分為現今存在的獨立函式庫,並有獨立的擁有者。有些命名空間被視為實驗性質,未升級到任何公開函式庫。Alessandra Sierra 在他的 文章 中更詳細地描述了這一點。
當時有一個想法,即有些貢獻函式庫最終可以提升到 Clojure 的核心函式庫本身。隨著時間的推移,人們希望保持 Clojure 的核心函式庫精簡,並讓這些獨立函式庫保持獨立,並以自己的步調演進。
另請參閱 貢獻歷史,了解貢獻拆分的某些舊有歷史。
可以在 貢獻操作指南 找到一些較舊的內容,說明如何參與或貢獻貢獻。