All Projects → lazar-mitrovic → GraalVMREPL

lazar-mitrovic / GraalVMREPL

Licence: other
REPL (read–eval–print loop) shell built on top of JavaFX and GraalVM stack, incorporating GraalJS, GraalPython, TruffleRuby and FastR

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects
CSS
56736 projects

Projects that are alternatives of or similar to GraalVMREPL

lucene-grep
Grep-like utility based on Lucene Monitor compiled with GraalVM native-image
Stars: ✭ 160 (+416.13%)
Mutual labels:  graalvm, graalvm-native-image
tools-deps-native
Run tools-deps-alpha as a native binary.
Stars: ✭ 30 (-3.23%)
Mutual labels:  graalvm, graalvm-native-image
LogoRRR
A log viewer which visualises log events such that it is easy to identify problems or events of interest. This app was implemented using Scala and JavaFX, GluonHQ toolchain and GraalVM as platform.
Stars: ✭ 40 (+29.03%)
Mutual labels:  graalvm, graalvm-native-image
ScriptableMC-Engine
Create TypeScript/JavaScript plugins for Minecraft 1.16 Bukkit/Spigot/Paper
Stars: ✭ 36 (+16.13%)
Mutual labels:  graalvm
http4s-graal
An experiment running http4s as native image with Graal (+ Substrate)
Stars: ✭ 27 (-12.9%)
Mutual labels:  graalvm
Enso
Hybrid visual and textual functional programming.
Stars: ✭ 5,238 (+16796.77%)
Mutual labels:  graalvm
ghidraal
A Ghidra extension for scripting with GraalVM languages, including Javascript, Python3, R, and Ruby.
Stars: ✭ 48 (+54.84%)
Mutual labels:  graalvm
quarkus-performance
Comparing the CPU/Memory utilisation - Quarkus via GraalVM Native Image vs. Quarkus via Java Runtime vs. Payara-Micro via Java Runtime.
Stars: ✭ 49 (+58.06%)
Mutual labels:  graalvm
Babashka
Native, fast starting Clojure interpreter for scripting
Stars: ✭ 2,462 (+7841.94%)
Mutual labels:  graalvm
microprofile.training
home of http://microprofile.training sample app
Stars: ✭ 19 (-38.71%)
Mutual labels:  graalvm
kotlin-graalvm-custom-runtime-demo
Demo for a AWS Lambda functions written in Kotlin using GraalVM and custom runtimes
Stars: ✭ 23 (-25.81%)
Mutual labels:  graalvm
Spring Native
Spring Native provides beta support for compiling Spring applications to native executables using GraalVM native-image compiler.
Stars: ✭ 2,282 (+7261.29%)
Mutual labels:  graalvm
Okhttp
Square’s meticulous HTTP client for the JVM, Android, and GraalVM.
Stars: ✭ 41,306 (+133145.16%)
Mutual labels:  graalvm
ipolyglot
A polyglot kernel for Jupyter notebooks based on GraalVM.
Stars: ✭ 59 (+90.32%)
Mutual labels:  graalvm
azure-native-spring-function
Tutorial on running Spring Boot + GraalVM native images on Azure Functions
Stars: ✭ 56 (+80.65%)
Mutual labels:  graalvm
Truffleruby
A high performance implementation of the Ruby programming language. Built on the GraalVM by Oracle Labs.
Stars: ✭ 2,620 (+8351.61%)
Mutual labels:  graalvm
yona
Yona is a modern take on a dynamic general-purpose programming language with advanced functional programming, minimalistic ML-like syntax, strict evaluation, for GraalVM polyglot virtual machine (VM).
Stars: ✭ 113 (+264.52%)
Mutual labels:  graalvm
spring-cloud-stream-event-sourcing-testcontainers
Goal: create a Spring Boot application that handles users using Event Sourcing. So, whenever a user is created, updated, or deleted, an event informing this change is sent to Kafka. Also, we will implement another application that listens to those events and saves them in Cassandra. Finally, we will use Testcontainers for integration testing.
Stars: ✭ 16 (-48.39%)
Mutual labels:  graalvm
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.
Stars: ✭ 3,286 (+10500%)
Mutual labels:  graalvm
micronaut-camunda-external-client
This open source project allows you to easily integrate Camunda's External Task Clients into Micronaut projects: simply add a dependency in your Micronaut project
Stars: ✭ 19 (-38.71%)
Mutual labels:  graalvm

GraalVM REPL

REPL (read–eval–print loop) shell built ontop of JavaFX stack, GraalJS, GraalPython, TruffleRuby and FastR

GraalVM REPL GraalVM REPL

Building prerequisites

  • Up-to-date GraalVM with GRAALVM_HOME environment variable set. It can be obtained either in binary form from here for nightly versions or here for stable versions, or built from source (ideally using this script)

  • native-image

    • If you are using stable or nightly version of GraalVM you can obtain it using:

      gu install native-image
  • Truffle languages: GraalJS, GraalPython, TruffleRuby, FastR. Any combination of those will work, provided that pom.xml is edited accordingly.

    • If you are using stable or nightly version of GraalVM you can obtain them using:

      gu install python
      gu install ruby
      gu install R
    • If you are building from source you can include them as mx dynamic imports:

      cd $GRAAL_SOURCE/vm # Assuming that GRAAL_SOURCE points to right location
      
      export FASTR_CAPTURE_DEPENDENCIES
      export FASTR_RELEASE=true
      export FASTR_NO_RECOMMENDED=true
      export PKG_LDFLAGS_OVERRIDE="-L/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu"
      
      mx --dynamicimports /graal-js,graalpython,truffleruby,fastr,/substratevm build
  • Various other dependencies (which might or might not be needed): look here

  • native-image-agent in order to generate required reflection configuration in JVM mode.

Notice:

If you are building from source both languages and native-image can be built using aforementioned script by simply running:

./buildGraal.py --dynamicimports /graal-js,graalpython,truffleruby,fastr,/substratevm

Choosing languages

Go to pom.xml in project root and edit nativeImageArgs so that languages you have installed are uncommented (with ! removed), and that others are commented out.

So if you only have graalpython installed, your configuration would look like this:

                    <nativeImageArgs>
                        <!--<list>-!-language:js</list>-->
                        <list>--language:python</list>
                        <!--<list>-!-language:ruby</list>-->
                        <!--<list>-!-language:R</list>-->
                        ...

JVM run workflow

mvn clean javafx:run

(this will generate required reflection configuration - note that native-image-agent is required)

or if VSCode is used: CTRL+SHIFT+B / ⇧⌘B -> Run JVM

Debug

mvn clean javafx:run@debug

or if VSCode is used: install Debugger for Java extension and then press F5

Native-image build workflow

Platform Commands
Desktop: mvn clean client:build client:package client:run
Android: mvn -Pandroid clean client:build client:package client:install client:run
iOS: mvn -Pios clean client:build client:package client:install client:run

or if VSCode is used:

CTRL+SHIFT+B / ⇧⌘B -> Build (<platform>)

CTRL+SHIFT+B / ⇧⌘B -> Run (<platform>)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].