Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gluonhq/substrate
Create native Java(FX) apps for desktop, mobile and embedded
https://github.com/gluonhq/substrate
desktop embedded java javafx mobile
Last synced: 7 days ago
JSON representation
Create native Java(FX) apps for desktop, mobile and embedded
- Host: GitHub
- URL: https://github.com/gluonhq/substrate
- Owner: gluonhq
- License: gpl-2.0
- Created: 2019-10-12T18:13:58.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-11-15T08:46:28.000Z (2 months ago)
- Last Synced: 2025-01-12T02:12:45.308Z (14 days ago)
- Topics: desktop, embedded, java, javafx, mobile
- Language: Java
- Homepage:
- Size: 3.24 MB
- Stars: 402
- Watchers: 25
- Forks: 52
- Open Issues: 116
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - gluonhq/substrate - Create native Java(FX) apps for desktop, mobile and embedded (Java)
README
# Gluon Substrate
[![Maven Central](https://img.shields.io/maven-central/v/com.gluonhq/substrate.svg?color=%234DC71F)](https://search.maven.org/#search|ga|1|com.gluonhq.substrate)
[![Github Actions](https://github.com/gluonhq/substrate/workflows/Substrate%20Build/badge.svg)](https://github.com/gluonhq/substrate/actions?query=workflow%3A%22Substrate+Build%22)Gluon Substrate is a tool that converts Java(FX) Client applications into
native executables for desktop, mobile and embedded devices.
It uses the [GraalVM](https://www.graalvm.org/) GraalVM native-image tool to
compile the required Java bytecode into code that can be executed on the
target system (e.g. your desktop, on iOS, on a Raspberry Pi).Gluon Substrate deals with JavaFX resources (e.g. FXML, shader code,...)
and with platform-specific Java and native code that is part of the
JavaFX platform.While Gluon Substrate has an API that allows direct access to it, it
is recommended to use the [Maven plugin](https://github.com/gluonhq/client-maven-plugin.git) which simply requires some configuration in the `pom.xml`
file of your project. The plugin will then invoke the Substrate API
which in turn will use GraalVM native-image to compile the Java code,
and it will link the result with the required libraries and configuration
into a native executable.There are a number of [samples](https://github.com/gluonhq/gluon-samples)
available that show you how to get started
with Gluon Substrate. We recommend using your favourite IDE to run those
samples.## Compilation
### Linux hosts
To compile Gluon Substrate on Linux you need to install these development packages:
# on ubuntu (debian flavors)
apt-get install libasound2-dev libavcodec-dev libavformat-dev libavutil-dev libfreetype6-dev
apt-get install libgl-dev libglib2.0-dev libgtk-3-dev libpango1.0-dev libx11-dev libxtst-dev zlib1g-dev# on fedora (redhat flavors), requires https://rpmfusion.org/
dnf install alsa-lib-devel freetype-devel glib2-devel gtk3-devel libX11-devel
dnf install libXtst-devel mesa-libGL-devel pango-devel zlib-devel
dnf install ffmpeg-devel## Issues and Contributions ##
Issues can be reported to the [Issue tracker](https://github.com/gluonhq/substrate/issues)
Contributions can be submitted via [Pull requests](https://github.com/gluonhq/substrate/pulls),
providing you have signed the [Gluon Individual Contributor License Agreement (CLA)](https://docs.google.com/forms/d/16aoFTmzs8lZTfiyrEm8YgMqMYaGQl0J8wA0VJE2LCCY).