koin VS spring-fu

Compare koin vs spring-fu and see what are their differences.

koin

Koin - a pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform (by InsertKoinIO)

spring-fu

Configuration DSLs for Spring Boot (by spring-projects-experimental)
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
koin spring-fu
24 13
9,415 1,681
1.0% 0.1%
9.3 2.6
7 days ago 9 months ago
Kotlin Java
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

koin

Posts with mentions or reviews of koin. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-03-29.

spring-fu

Posts with mentions or reviews of spring-fu. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-12-28.
  • ISBN Stacks — A look at a possible Spring Application implementation without annotations
    3 projects | dev.to | 28 Dec 2024
    Spring-Fu GitHub Repo
  • What's New in Spring Framework 6.1
    5 projects | news.ycombinator.com | 16 Aug 2023
    The point isn't that one should reinvent the way that Tomcat is started, but that Spring Boot (by default) is using action at a distance and runtime reflection which have serious downsides if you want to understand what's actually going on because you're a) new to the technology, or b) have to debug some weird edge case.

    The alternative is using explicit, reflection-less code - which you can do even with Spring, although it's experimental: https://github.com/spring-projects-experimental/spring-fu

  • What are some of the biggest problems you personally face in Java?
    6 projects | /r/java | 27 Dec 2022
    Bean Definition -> Still needed although experimental projects like Spring Fu might remove their need in the future. Technically, there is nothing to stop you from registering beans functionally right now but the verbosity is likely to make that approach less optimal.
  • Hexagonal Architecture and Domain Driven Design
    1 project | news.ycombinator.com | 12 Apr 2022
    Most of these things can be done with higher-order functions too.

    I think that if Java had had lambdas earlier, Spring and other such frameworks might look very different. You can see that already, Spring is adding (experimental?) support for more declarative styles of configuration instead of the rather slow and hard-to-debug reflection magic: https://github.com/spring-projects-experimental/spring-fu

  • I hate Spring (the Java framework)
    2 projects | news.ycombinator.com | 11 Apr 2022
  • Scala at Scale at Databricks
    4 projects | news.ycombinator.com | 9 Dec 2021
    > And that is a problem how? Stick to one style.

    Switching an API from "a result or nothing" to "a result or an error message" happens all the time, and switching in the other direction is only slightly less frequent. And of course most programs have some APIs where one is appropriate and some where the other is. So consistency is valuable.

    > https://github.com/spring-projects-experimental/spring-fu/tr...

    Still reflection-based.

    > There's nothing magical about it.

    It's magical to anyone thinking in the language - it breaks the rules of the language, so you can't reason about what it does.

  • A new way to construct objects in Java
    2 projects | dev.to | 16 Nov 2021
    SpringFu (from Spring team): https://github.com/spring-projects-experimental/spring-fu/tree/main/jafu
  • Annotation-free Spring
    5 projects | /r/java | 12 Sep 2021
    It's mentioned in the article, even though the examples are written in Kotlin spring-fu supports a java-based dsl.
    1 project | dev.to | 12 Sep 2021
    It's possible to remove it anyway, provided you accept to use APIs considered experimental. The solution is Spring Fu, with "Fu" standing for functional. It's available in two flavors, one for Java and one for Kotlin, respectively named JaFu and KoFu.
  • Kotlin Team AMA #3: Ask Us Anything
    52 projects | /r/Kotlin | 27 May 2021
    There is already a very close collaboration between Kotlin and Spring teams. I think leveraging more multiplatform capabilities and more DSL à la KoFu from https://github.com/spring-projects-experimental/spring-fu could increase Koltin usage on server side long term.

What are some alternatives?

When comparing koin and spring-fu you can also consider the following projects:

Kodein - Painless Kotlin Dependency Injection

jackson-module-kotlin - Module that adds support for serialization/deserialization of Kotlin (http://kotlinlang.org) classes and data classes.

kotlin-guice - Guice DSL extensions for Kotlin

kotlinx.html - Kotlin DSL for HTML

injekt

spring-native - Spring Native is now superseded by Spring Boot 3 official native support

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured

Did you know that Kotlin is
the 17th most popular programming language
based on number of references?