simon-brooke / kit

Lightweight, modular framework for scalable web development in Clojure

Home Page:https://kit-clj.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

kit

Lightweight, modular framework for scalable production systems.

ALPHA WARNING: kit-generator and Kit modules / code generation is in ALPHA meaning the API for code generation is subject to change. This should not affect users of Kit, but will affect anyone developing modules or extending them. The libs/libraries are stable.

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 clj-new 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

clojure -X:new :template io.github.kit-clj :name yourname/app :args '[+selmer]'

Latest versions

Library Latest Version
io.github.kit-clj/kit-core Clojars Project
io.github.kit-clj/kit-hato Clojars Project
io.github.kit-clj/kit-metrics Clojars Project
io.github.kit-clj/kit-quartz Clojars Project
io.github.kit-clj/kit-redis Clojars Project
io.github.kit-clj/kit-repl Clojars Project
io.github.kit-clj/kit-selmer Clojars Project
io.github.kit-clj/kit-sql Clojars Project
io.github.kit-clj/kit-postgres Clojars Project
io.github.kit-clj/kit-xtdb Clojars Project
io.github.kit-clj/kit-generator Clojars Project
io.github.kit-clj/lein-template Clojars Project

Profiles

Default libs included with no profile specified:

  • kit-core
  • kit-undertow
  • kit-repl

Additional profiles:

  • +bare - Only includes the kit-core and kit-undertow libraries as the foundation
  • +xtdb - Adds the kit-xtdb lib
  • +hato - Adds the kit-hato lib
  • +metrics - Adds the kit-metrics lib
  • +quartz - Adds the kit-quartz lib
  • +redis - Adds the kit-redis lib
  • +selmer - Adds the kit-selmer lib
  • +sql - Adds the kit-sql and kit-postgres libs
  • +full - Adds the libs kit-xtdb, kit-hato , kit-metrics, kit-quartz, kit-redis, kit-selmer, and kit-sql

Libs

  • kit-core - basic utility functions used by some other libs
  • kit-xtdb - Simple binding to connect to a XTDB database node
  • kit-hato - HTTP client using hato
  • kit-metrics - Configurable metrics using iapetos
  • kit-quartz - Scheduler using cronut as an integrant binding for quartz. Exposes the cronut API, simply some extensions for aero and utilities
  • kit-redis - An extension of core.cache for Redis via carmine
  • kit-repl - Socket REPL integrant binding
  • kit-selmer - Templating configuration with selmer
  • kit-sql - Generic SQL integrant binding. Uses conman , next.jdbc , hugsql, and migratus directly, or implicitly. By default, imports kit-postgres lib which supports Postgresql
  • kit-postgres - lib with data bindings and utilities for working with Postgres
  • 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

Development setup

Minimum Clojure CLI version: 1.10.3.933

To install the libraries locally

clojure -T:build install-libs

To install a single library locally

clojure -T:build install-lib :artifact-id :lein-template

To push a single library to Clojars

clojure -T:build install-lib :artifact-id :lein-template :publish true

Inspiration and thanks to

License

Copyright © 2021

Released under the MIT license.

About

Lightweight, modular framework for scalable web development in Clojure

https://kit-clj.github.io/

License:MIT License


Languages

Language:Clojure 99.2%Language:Dockerfile 0.6%Language:Makefile 0.2%