kotlinx.serialization VS spring-fu

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


Kotlin multiplatform / multi-format serialization (by Kotlin)


KoFu and JaFu configuration DSLs for Spring Boot (by spring-projects-experimental)
Our great sponsors
  • Scout APM - A developer's best friend. Try free for 14-days
  • Nanos - Run Linux Software Faster and Safer than Linux with Unikernels
  • SaaSHub - Software Alternatives and Reviews
kotlinx.serialization spring-fu
29 6
3,507 1,567
2.3% 0.6%
8.7 5.4
2 days ago 3 days 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.


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


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 2021-11-16.
  • 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 | reddit.com/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 | reddit.com/r/Kotlin | 27 May 2021
    Longer term : getting rid of kotlin-reflect in Spring Framework by performing Kotlin reflection ahead-of-time and continuing to mature https://github.com/spring-projects-experimental/spring-fu for a more DSL-ish way of configuring Spring Boot are my favorite topics.
    52 projects | reddit.com/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.
  • The Modern Java Platform
    10 projects | news.ycombinator.com | 16 Mar 2021
    There's a next stage after annotations. The current thinking is to replace annotations with function calls. It makes more sense if you use Kotlin because Java is a bit verbose when you do this and in Kotlin you get to create nice DSLs. This cuts down on use of reflection and AOP magic that spring relies on and also enables native compilation. It also makes it easier to debug and it makes it much easier to understand what is going on at the price of surprisingly little verbosity. Kofu and Jafu are basically still experimental but work quite nicely https://github.com/spring-projects-experimental/spring-fu/tr...

    Another trend is native compilation. Spring native just went into beta (uses the Graal compiler). That still relies on reflection but they re-engineered the internals to be more native friendly.

    Spring Boot basically added the notion of autoconfiguring libraries that simply by being on the classpath self configure in a sane way. It's one of those things that makes the experience a bit more ruby on rails like. Stuff just works with minimal coding and you customise it as needed (or not, which is perfectly valid).

    Compared to XML configuration, Spring has come a long way. Separating code and configuration is still a good idea with Spring but indeed not strictly enforced. @Configuration classes can take the place of XML and if you use the bean dsl, that's basically the equivalent of using XML. Only it's type checked at compile time and a bit more readable.

What are some alternatives?

When comparing kotlinx.serialization and spring-fu you can also consider the following projects:

Moshi - A modern JSON library for Kotlin and Java.

klaxon - A JSON parser for Kotlin

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

kotlin-json - A JavaScript Object Notation library for Kotlin JVM.

spring-native - Spring Native provides beta support for compiling Spring applications to native executables using GraalVM native-image compiler.

javalin - A simple and modern Java and Kotlin web framework

koin - Koin - a pragmatic lightweight dependency injection framework for Kotlin

kotlinx.html - Kotlin DSL for HTML

compose-jb - Jetpack Compose for Desktop and Web, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.

kson - Gson TypeAdapter & Factory generator for Kotlin data classes

fluid-json - A JSON library written in pure Kotlin