Clojure
Awesome Clojure
¶
- Penpot:设计和原型平台
- LightTable (IDE) (已存档)
- Maria.cloud (Online IDE for beginners)
- Riemann (Monitoring)
- Precursor (Online prototyping tool)
- Puppet Server
- PuppetDB
- Metabase
- Metabase Datomic
- CircleCI
- Avi (vim rewrite)
- Liquid (Text Editor)
- Clojupyter
- meins
- Jepsen
- Braid:一款团队聊天应用程序,具有新颖的 UI,可带来更好的对话
- Accelerated Text:自然语言生成环境(后端:Clojure,前端:JS)
- Ziggurat:一个为简化 Kafka 上的流处理而构建的框架
- Nightcode:Clojure 的 IDE(已存档)
- Nightlight:文本编辑器(已存档)
- Atea:适用于 MacOS 的简约菜单栏时间跟踪器(旧版,需要 jvm 1.6)
- herfi - 用 Clojure 和 ClojureScript 编写的 3D 多人游戏原型
- racing-game-cljs - 使用 ClojureScript、React 和 ThreeJS 构建的 3D 赛车游戏
- Logseq:知识管理和协作(开放前端)
- jank
- lux
- mal
- scheje
- eden
- ferret
Awesome macros usage¶
解答为什么 lisp 如此出色,杀手级功能正在发挥作用
- core.async - 将 AST 转换为 CSP 程序
- cloroutine - 暂停和继续(协程)
- missionary - 反应式数据流编程工具包
- photon - 实时网络,如 Meteor,但适用于 Clojure(脚本)
- metaclj - 分阶段编译
- meander - 使用数据结构模式匹配进行透明数据转换
- proteus - 引入可变变量(不要使用,只是学习如何将你的思维映射到不可变的世界)
Advanced datastructures¶
- specter:一个优雅的 API,用于查询和转换嵌套和递归数据
- meander:透明数据转换(定义为模式匹配)
- Persistent AVL trees:具有日志时间排名查询的持久排序映射和集合
- Finger Tree:双列表、计数双列表、计数排序集
- Hitchhiker Tree:创建快速、可快照、大规模可扩展的数据库
- Hierarchical set
- Ordered:有序集和地图
- Lazy Map:其值仅在访问时计算
- Duratom:持久原子
- Durable Queue:队列保留在磁盘上
- bifurcan:线性映射/集合/列表(在内存中连续存储条目),;用java编写,但测试套件(阅读:使用示例) in clojure
Web Framework¶
其实这里不要搜索rails/django,而是自己编写 * Compojure * Compojure-api * Luminus * Duct * Pedestal * Datsys * yada * Hoplon * Fulcro * Coast * Reitit * Tadam * Column * Biff
Dependency injection¶
有状态对象的托管生命周期
Build Automation and Package management¶
用于项目构建自动化和包/依赖项管理的库.
- Leiningen
- Boot
- tools.build
- clojurephant (梯度插件)
- shadow-cljs (Clojurescript)
Version Control Management¶
用于与 VCS 软件交互的代码实用程序
Date and Time¶
用于处理日期和时间的库.
- clj-time
- clojure.java-time - Java 8 日期时间 API
- timewords
- tick:Clojure(Script)库,旨在替代 clj-time
GUI¶
Audio¶
HTTP¶
用于使用 HTTP 的库.
- clj-http :Apache HttpComponents 客户端包装器
- http-kit :简单、高性能的事件驱动的HTTP客户端和服务器
- ring :HTTP服务器抽象
- kvlt :跨 JVM / Node / 浏览器的 HTTP 统一异步客户端接口
- aleph :基于Netty的异步客户端/服务器,默认为HTTP、TCP和UDP
- hato :Clojure 的 HTTP 客户端,包装 JDK 11 的 HttpClient
Database¶
数据库和数据库客户端库
- Datomic
- xtdb:用于 SQL、数据日志和图形查询的双时态数据库
- Datahike
- Datascript
- Datalevin
- next.jdbc
- clojure.java.jdbc
- clojure.jdbc
- cravendb
- Monger:对于 MongoDB
- Monglorious:对于 MongoDB
- clj-rethinkdb:对于 RethinkDB
- Revise:对于 RethinkDB
- Spandex:对于 ElasticSearch
- Elastisch:对于 ElasticSearch
- neocons:对于 Neo4j
- Alia:对于卡桑德拉
- aerospike-clj:用于 Aerospike
Connection pools¶
数据库连接池
Structural Migrations¶
保持数据库和其他同步
Redis¶
JSON¶
Protocol Buffers and gRPC¶
Database Cli¶
ORM and SQL generation¶
用于 SQL 生成的 DSL. * Walkable * Korma * Specql * stch-library/sql * sqlingvo * sqlium * honeysql * Toucan
Security¶
身份验证、授权和其他安全相关的库.
- Buddy
- caesium (lib钠结合)
- Friend
- secrets.clj
- bolt
RESTful API¶
用于开发 RESTful API 的库.
GraphQL API¶
用于开发 GraphQL API 的库.
Emails¶
HTML Manipulation¶
用于处理 HTML 的库.
Data Validation¶
用于验证数据的库.
Type System¶
Clojure 的可选类型系统
Pattern Matching¶
Async processing¶
Monads¶
WebSocket¶
Testing¶
Webdriver automation¶
Code Analysis and Linter¶
Science and Data Analysis¶
库、扩展 REPL 以及其他科学和统计数据工具 分析和可视化.
- Incanter
- Cascalog
- Onyx
- sparklling
- flambo
- Neanderthal
- Streaming Histograms
- Gorilla REPL
- Bayadera - Bayesian Data Analysis on the GPU
- ClojureCUDA
- Neanderthal - fast matrix and linear algebra
- ClojureCL - parallel computations with OpenCL
- Loom - graph library for Clojure
Machine Learning¶
- neanderthal:快速矩阵库
- clojurecuda
- clojurecl
- bayadera:GPU上的贝叶斯数据分析
- cortex
- Flare
- MXNet - Clojure API
- clj-bigml
- Deeplearning4j
- Enclog
- lambda-ml
- clojure-tensorflow
- dl4clj (deeplearning4j to clojure)
- Anglican
- clj-ml
- Clatern
- k9
- Statistiker
- Synaptic
- Infer
- clj-synapses
- scicloj.ml
Computer Vision¶
- origami:OpenCV 4 包装器
- clj-tesseract
- vision
Text Processing¶
Parsing¶
- Instaparse
- kern
- duckling
- buran - RSS/Atom feed 消费者和生产者
Exceptions and Error Handling¶
Rule-based Programming¶
Editor Plugins¶
- Calva (VSCode)
- clojure-lsp (multiple editors)
- CIDER (Emacs)
- smartparens (Emacs)
- rainbow-delimiters (Emacs)
- aggressive-indent (Emacs)
- Conjure (Neovim)
- vim-cljfmt (Vim)
- vim-eastwood (Vim)
- vim-fireplace (Vim)
- vim-redl (Vim)
- vim-leiningen (Vim)
- rainbow_parentheses.vim (Vim)
- vim-iced (Vim)
- Cursive (IntelliJ)
- proto-repl (Atom)
- Parinfer (multiple editors)
- Bracket Pair Colorizer (VSCode)
- clojureVSCode (VSCode)
- Notepad++:修改Lisp的配置文件
Documentation¶
用于(非 LP)代码和项目文档的实用程序和库
Literate Programming¶
Archives and Compression¶
Miscellaneous¶
- potemkin - 在另一个 ns 中重新导出变量/就像 clojure 映射一样
- clj-tuple
- slingshot
- virgil
- javastar
- riddley
- kezban
- clj-grpc
Debugging¶
- tools.trace
- debugger
- debug-repl
- ritz
- redl
- limit-break
- spyscope
- aprint
- packed-printer
- pretty
- prone
- figwheel
- ultra
- mate-clj
- scope-capture
CI¶
Project Management¶
Terminal UI¶
Graphviz¶
- zipper-viz
- dorothy
- viz.cljc
- fsmviz
- rhizome
- re-frame-flow - 基于图形的可视化工具,用于重新构建事件链(ClojureScript)
Game Development¶
Guides¶
- The Clojure Style Guide
- Clojure Distilled
- clojure-cookbook
- A Brief Beginner's Guide To Clojure
- Clojure for the Brave and True
- Clojure from the ground up
- Error message catalog
- Clojure by Example
Video tutorials¶
YouTube¶
- Misophistful's channel:了解列表理解、线程宏、生成测试、解构、core.match 等概念,以及 Light Table、Datomic 和 Clojure 游戏开发简介
- Fred Overflow's channel:使用 Clojure 介绍函数式编程和 TDD
- Clojure Pills screencast:Clojure 简介,一次一个函数
- Clojure Pills screencast:与整个 clojure 生态系统相关的有趣且适合初学者的内容
- Data persistance with Postgres, Clojure and JDBC
- Clojure Tutorials by Timothy Baldridge:有关 core.async、传感器、瞬态、逻辑编程和“每日函数”系列的更多高级视频.