Skip to content
Stuart Sierra edited this page Apr 6, 2020 · 26 revisions

Work by others which is similar to, but not based on, Component. Different approaches, different solutions.

Contents

Component-like libraries in Clojure/ClojureScript

dar-clojure/container - Dependency injection container

dubiousdavid/system - Start and stop services in a particular order

james-henderson/yoyo - starting, reloading (via clojure.tools.namespace) and stopping Clojure systems in a functional style; yoyo announcement; yoyo comparison with Component

juxt/jig - application harness for interactive development

weavejester/integrant - Micro-framework for data-driven architecture

mccraigmccraig/clomponents - component management for Clojure apps

palletops/leaven - component composition library for Clojure and ClojureScript; Leaven release announcement

Prismatic/plumbing - dataflow-structured function composition; Graph blog post

puppetlabs/trapperkeeper - services framework for Clojure / JVM applications; Puppet Labs blog post

reborg/scccw/components.md - a simple, convention-based, Clojure project organization; not a library or framework; components.md announcement

ShaneKilkelly/clj-omni - Simple, global service locator for Clojure

tolitius/mount - mount is an alternative to the component approach with notable differences

teknql/systemic - similar to mount

ur component.clj - "a minimal re-implementation of component to show just how little there is"

vmarcinko/teuta - dependency-injection container; Teuta blog post

zcaudate/hara - Clojure utility library, including a reimplementation of components; hara.component blog post

The Abstract Container Pattern by Chris Zheng and discussion on the Clojure mailing list

Component-like libraries ported to other languages

Bento - Haskell library for stateful components inspired by this Component

Component (Racket) - Racket Scheme library for stateful components inspired by this Component

ecosystem - JavaScript/Node.js library based on Component

thi.ng/system - TypeScript dependency-injection / lifecycle container for stateful app components

Clone this wiki locally