Skip to content
Alessandra Sierra edited this page Jun 10, 2022 · 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

darkleaf/di - a dependency injection framework that allows you to define dependencies as cheaply as defining function arguments

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

ferdinand-beyer/init - application initialization and dependency injection, inspired by Integrant, Component, Dagger 2, Guice, Spring, and CDI.

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

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

juxt/clip - Dependency injection for Clojure and Clojurescript. Components can be async.

juxt/jig - application harness for interactive development

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

strojure/fitter - System component management library

teknql/systemic - similar to mount

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

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

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

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

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

Component-like libraries ported to other languages

Haskell: Bento - Haskell library for stateful components inspired by this Component

JavaScript: ecosystem - JavaScript/Node.js library based on Component

Racket: Component - Racket Scheme library for stateful components inspired by this Component

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