Git Product home page Git Product logo

graalvm-reachability-metadata's Introduction

GraalVM Reachability Metadata Repository

This repository enables users of GraalVM Native Image to share and reuse metadata for libraries and frameworks in the Java ecosystem. The repository is integrated with GraalVM Native Build Tools beginning with version 0.9.13: you can enable automatic use of the metadata repository for Gradle projects or Maven projects.

This web page provides an overview of libraries and frameworks that are tested and thus ready for GraalVM Native Image. If you would like to see your library or framework in the list too, please open a pull request and extend this JSON file. Before submitting a pull request, please read this guide.

Rationale

When you use Native Image to build native executables it only includes the elements reachable from your application entry point, its dependent libraries, and JDK classes discovered through static analysis. However, the reachability of some elements (such as classes, methods, or fields) may not be discoverable due to Java’s dynamic features including reflection, resource access, dynamic proxies, and serialization. If an element is not reachable, it is not included in the generated executable at build time, which can lead to failures at run time. Native Image has built-in metadata for JDK classes but user code and dependencies may use dynamic features of Java that are undiscoverable by the Native Image analysis. For this reason, Native Image accepts additional reachability metadata in the form of JSON files. Since this metadata is specific to a specific code base, the JSON files providing the corresponding metadata can be shared for libraries and frameworks. This repository is a centralized place for sharing such files for libraries and frameworks that do not provide built-in metadata yet. It is also used to retrofit metadata for older versions of libraries and frameworks.

If you are a library or framework maintainer, the best way to make your code ready for GraalVM Native Image is to provide reachability metadata as part of your JARs. Please visit this web page for more information.

Contributing

We welcome contributions from the community. Before submitting a pull request, please review our contribution guide.

graalvm-reachability-metadata's People

Contributors

alina-yur avatar bclozel avatar christophstrobl avatar corneil avatar derkoe avatar dnestoro avatar dsyer avatar fniephaus avatar gradinac avatar graemerocher avatar izeye avatar ladutsko avatar lazar-mitrovic avatar linghengqian avatar melix avatar mhalbritter avatar michael-simons avatar msupic avatar n0tl3ss avatar nkonev avatar olgamaciaszek avatar rbygrave avatar sdeleuze avatar spavlusieva avatar ting-lan-wang avatar tomas-langer avatar vidhibhansali avatar violetagg avatar vjovanov avatar wilkinsona avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.