Spring VS graalvm-reachability-metadata

Compare Spring vs graalvm-reachability-metadata and see what are their differences.

graalvm-reachability-metadata

Repository which contains community-driven collection of GraalVM reachability metadata for open-source libraries. (by oracle)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
Spring graalvm-reachability-metadata
78 8
55,064 325
0.9% 4.9%
10.0 8.6
5 days ago 7 days ago
Java Java
Apache License 2.0 Creative Commons Zero v1.0 Universal
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.

Spring

Posts with mentions or reviews of Spring. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-30.
  • Restrictive Abstractions
    2 projects | dev.to | 30 Mar 2024
    This interface is a simplified version of real caching abstractions from Java technologies such as the ones from Spring or JCache (JSR-107). Both are part of quite complex solutions, having more generic types and different capabilities. Also, annotations would be preferred to using Cache directly in most Java applications.
  • They said to use the Default Dispatchers but I found out it was Unconfined
    1 project | dev.to | 21 Mar 2024
    Cross-post: Controller code using Unconfined Dispatcher #32032
  • Spring 6.1 now compatible with virtual threads and JDK 21 overall
    1 project | /r/hypeurls | 19 Aug 2023
  • What's New in Spring Framework 6.1
    5 projects | news.ycombinator.com | 16 Aug 2023
  • CWE Top Most Dangerous Software Weaknesses
    4 projects | news.ycombinator.com | 13 Jul 2023
    Mitre really lost a lot of respect with CVE-2016-1000027. Every few weeks a warning that any SpringBoot 2.x project has a CVSS 9.8, which causes all sorts of heartache for those of us bound to CVE remediation. Every blasted security tool reports this one. Spring reviewed and rejected, as did our very, very large organization. Comically, this has become the CVE we use to see how our tools allow us to white/black list entries.

    Thank god Spring dropped this interface in the Framework 6.x / Boot 3.x release, and the end for non-commercial support is this year for the old stuff.

    https://github.com/spring-projects/spring-framework/issues/2...

  • Help with GetMapping annotation
    1 project | /r/javahelp | 1 Jul 2023
    Referring to https://github.com/spring-projects/spring-framework/blob/main/spring-web/src/main/java/org/springframework/web/bind/annotation/GetMapping.java, the value could have got assigned to any of the other members like name, path, params, etc. Is there any logic involved that enables the single value passed to the GetMapping annotation to be assigned to the value member?
  • What's your most painful experience of debugging an issue that only reproduced in production?
    1 project | /r/java | 11 May 2023
    This one. In short, JMS listeners stopped working randomly (of course only on Saturdays, and only under load), but at first we didn't know that and suspected the message broker at fault. We had quite extensive logging, but no observability on the broker. Can't remember all the details, but eventually we figured out it was the listener container, and I could reproduce it after debugging deeply into Spring code during a load test.
  • 10+ Open-Source Projects For Web Developers In 2023
    14 projects | dev.to | 10 Apr 2023
    GitHub Stars: 51 K GitHub Link: https://github.com/spring-projects/spring-framework
  • Dropwizard 3.0.0 and 4.0.0 have been released
    1 project | /r/java | 31 Mar 2023
    It still has, but it is more of "imaginary" one (https://github.com/spring-projects/spring-framework/issues/24434).
  • how does spring webflux interact with the java servlet api?
    1 project | /r/java | 7 Mar 2023
    Simple: Spring WebFlux does not require Servlet, but can adapt to it. We essentially built our own reactive HTTP abstraction, without any Servlet dependencies. Then we made adapters that use said abstraction for (Reactor) Netty and Servlet. Note that we have specific adapters for Tomcat, Jetty, and Undertow, relying on non-blocking native APIs.

graalvm-reachability-metadata

Posts with mentions or reviews of graalvm-reachability-metadata. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-19.
  • GraalVM for JDK 21 is here
    3 projects | news.ycombinator.com | 19 Sep 2023
    gcj had a lot of problems beyond needing configuration of reflection metadata. It used a full reimplementation of the standard library, and it was never adopted by the wider Java community being largely just Red Hat's strategy for creating a fully open source Java implementation rather than something offering specific benefits to Java developers. In particular people thought it'd lead to faster code, but GCC was never designed for Java and the results were actually a fair bit slower iirc.

    Native image is quite different. With this new release the compiled images can not only be faster than JIT compiled Java (wow) but also use way less memory and start instantly. At a stroke this is resolving one of the biggest complaints people have always had against JVM languages.

    And as a consequence you're seeing adoption by the wider community. All the modern Java web frameworks support it now, and there's a metadata repository where it's collected for projects that haven't accepted it upstream yet [1].

    [1] https://github.com/oracle/graalvm-reachability-metadata

  • Are there any poplar alternatives to siesta?
    5 projects | /r/java | 15 Apr 2023
    Yeah, I was able to get it working by adding some custom runtime hints. jOOQ support was recently added to the graalvm-reachability-metadata repo via this issue, so that may make things easier
  • Spring Boot 3 meets Graal Native Image
    1 project | dev.to | 29 Oct 2022
    During native image generation, native-image tool does a static analysis. There are classes which might not get accessed during this static analysis and they get left out in the final artifact. To overcome this some extra information can be provided during build time. Creating this extra metadata is cumbersome. There's an effort to consolidate these metadata information for various 3rd party libraries into a shared github repo https://github.com/oracle/graalvm-reachability-metadata .
  • Oracle Contributing GraalVM Community Edition Java Code to OpenJDK
    7 projects | news.ycombinator.com | 26 Oct 2022
    GraalVM is truly great stuff.

    GraalVM native compilation helps Java in the data center to avoid being a cost sink and to reduce start-up latency. Oracle needs Java to sell enterprise software.

    Oracle contributing to OpenJDK may be required for Amazon cooperation (since Amazon is pushing its own JDK build) and probably helps the library ecosystem work towards native compatibility.

    Native support for reflection (used in many libraries) requires "reachability metadata), maps of reflective API usage, at build time. Anyone can do it, but enterprise requires authoritative sources. Until authoritative reachability metadata covers the transitive graph of library+version dependencies in enterprise software, GraalVM builds are a PITA.

    - https://github.com/oracle/graalvm-reachability-metadata

    - latest release: https://medium.com/graalvm/graalvm-22-3-is-here-jdk-19-build...

    - graalvm "community" roadmap: https://github.com/orgs/oracle/projects/6

    (As a side note: Mark Reinhold has run the JDK team since 1997: is there any comparable example of such stellar leadership for broadly-adopted software across multiple technical and organizational eras?)

  • GraalVM 22.3: JDK 19 builds, jlink support, new monitoring features, and more
    2 projects | news.ycombinator.com | 25 Oct 2022
    Also, reflection is supported in AOT mode. The analysis, however, does require reachability metadata in some cases. In the best case, libraries provide and maintain appropriate configuration for this. Reachability metadata can also be shared via https://github.com/oracle/graalvm-reachability-metadata.
  • is anyone using graal/spring native in production?
    10 projects | /r/java | 15 Oct 2022
    Most JVM libraries will require some amount of reflection for all frameworks as well, and for that we have made the bet to invest on a JVM wide effort -> https://github.com/oracle/graalvm-reachability-metadata.
  • Current State of Spring Boot Native with Kotlin (GraalVM)
    1 project | /r/Kotlin | 10 Oct 2022
    The first issue should be solvable by refining Kotlin hints in https://github.com/oracle/graalvm-reachability-metadata that is used for non Spring hints with Boot 3.

What are some alternatives?

When comparing Spring and graalvm-reachability-metadata you can also consider the following projects:

Jooby - The modular web framework for Java and Kotlin

picocli - Picocli is a modern framework for building powerful, user-friendly, GraalVM-enabled command line apps with ease. It supports colors, autocompletion, subcommands, and more. In 1 source file so apps can include as source & avoid adding a dependency. Written in Java, usable from Groovy, Kotlin, Scala, etc.

Vaadin - Vaadin 6, 7, 8 is a Java framework for modern Java web applications.

daobab-100plus-examples - Daobab examples in Java

Ninja - Ninja is a full stack web framework for Java. Rock solid, fast and super productive.

jOOQ - jOOQ is the best way to write SQL in Java

Spring Boot - Spring Boot

coffee4j-back-end - The back-end of an application for tracking your coffee brews

Google Web Toolkit - GWT Open Source Project

httpserver

Play - The Community Maintained High Velocity Web Framework For Java and Scala.

spring-aot-smoke-tests - Smoke tests for Spring's AOT and native support