Kit
Lightweight, modular framework for scalable web development in Clojure
Install / Use
/learn @kit-clj/KitREADME
Kit
Lightweight, modular framework for scalable production systems.
Goal
The goal of Kit is to provide a template for a robust, scalable Clojure web application. It hides common plumbing that is standard across projects via its libs system, while exposing code that tends to be customized in the template.
Thanks to integrant, and aero, the libs are simple
skeletons with the bulk of the customization being done in
the system configuration EDN file.
Quick start
The recommended way to create a new Kit application is using deps-new.
Using neil (recommended):
brew install babashka/brew/neil
neil new io.github.kit-clj/kit yourname/app
Or directly with deps-new:
clojure -Sdeps '{:deps {io.github.seancorfield/deps-new {:mvn/version "RELEASE"}}}' \
-Tnew create :template io.github.kit-clj/kit :name yourname/app
Latest versions
| Library | Latest Version |
|------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
| io.github.kit-clj/kit-core | |
| io.github.kit-clj/kit-hato |
|
| io.github.kit-clj/kit-http-kit |
|
| io.github.kit-clj/kit-jetty |
|
| io.github.kit-clj/kit-metrics |
|
| io.github.kit-clj/kit-nrepl |
|
| io.github.kit-clj/kit-quartz |
|
| io.github.kit-clj/kit-redis |
|
| io.github.kit-clj/kit-repl |
|
| io.github.kit-clj/kit-selmer |
|
| io.github.kit-clj/kit-sql |
|
| io.github.kit-clj/kit-sql-conman |
|
| io.github.kit-clj/kit-sql-hikari |
|
| io.github.kit-clj/kit-sql-migratus |
|
| io.github.kit-clj/kit-postgres |
|
| io.github.kit-clj/kit-mysql |
|
| io.github.kit-clj/kit-xtdb |
|
| io.github.kit-clj/kit-generator |
|
| io.github.kit-clj/lein-template |
|
| io.github.kit-clj/deps-template |
|
Profiles
Default libs included with no profile specified:
kit-corekit-undertow
Additional profiles:
+xtdb- Adds thekit-xtdblib+hato- Adds thekit-hatolib+metrics- Adds thekit-metricslib+quartz- Adds thekit-quartzlib+redis- Adds thekit-redislib+selmer- Adds thekit-selmerlib+nrepl- Adds thekit-nrepllib+socket-repl- Adds thekit-repllib+sql- Adds the default SQL libraries:kit-sql-conman,kit-sql-migratus, andkit-postgreslibs+conman- Adds thekit-sql-conmanlib+hikari- Adds thekit-sql-hikarilib+migratus- Adds thekit-sql-migratuslib+mysql- Adds thekit-sql-generalandkit-mysqllibs+full- Adds the libskit-xtdb,kit-hato,kit-metrics,kit-quartz,kit-redis,kit-selmer,kit-repl,kit-sql-conman,kit-postgres, andkit-sql-migratus
Libs
kit-core- basic utility functions used by some other libskit-xtdb- Simple binding to connect to a XTDB database nodekit-hato- HTTP client using hatokit-nrepl- nREPL component for use in a running system. e.g. to connect to a production REPLkit-metrics- Configurable metrics using iapetoskit-quartz- Scheduler using cronut as an integrant binding for quartz. Exposes thecronutAPI, simply some extensions foraeroand utilitieskit-redis- An extension of core.cache for Redis via carminekit-repl- Socket REPL integrant binding for use in a running system. e.g. to connect to a production REPLkit-selmer- Templating configuration with selmerkit-sql- Deprecated. Usekit-sql-conmanandkit-sql-migratus. Pulls in both of these as generic SQL integrant binding. Uses conman , next.jdbc , hugsql, and migratus directly, or implicitlykit-sql-conman- Uses conman , next.jdbc , hugsql,kit-sql-hikari- General sql layer, just contains connection pooling ( via hikari-cp) and jdbc wrapper ( via next.jdbc) .kit-sql-migratus- uses migratus for SQL migrationskit-postgres- lib with data bindings and utilities for working with Postgreskit-mysql- lib with data bindings and utilities for working with MySQL8+kit-undertow- Server binding via ring-undertow-adapter
Build Tool Support
Presently only Clojure deps is supported, however there are plans to add Leiningen support.
Documentation
Documentation can be found here
Emacs Integration
An emacs package is available which provides a Magit-style interface to clj-new and deps-new and provides a command to create Kit web applications.
Inspiration and thanks to
- integrant as the basis of the project
- aero for powerful configuration used throughout
- re-frame template
for code used directly in
kit-template - Luminus framework from which the initial project that Kit's predecessor was built upon
License
Copyright © 2021
Released under the MIT license.
Related Skills
node-connect
351.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
