Crystal-DI is a flexible DI-container with simple DSL, auto-injection, memoization, lazy evaluation and contextual bindings.
Basic usage:
require "di"
module Container
include DI::ContainerMixin
register Foo, Foo.new
end
class Foo
end
Container.resolve(Foo)