warp
rust-cross
warp | rust-cross | |
---|---|---|
5 | 5 | |
1,894 | 2,475 | |
- | - | |
10.0 | 0.0 | |
about 4 years ago | almost 2 years ago | |
Rust | Shell | |
MIT License | Apache License 2.0 |
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.
warp
-
3 Ways to Package Your Java Project into a JAR for Deployment
jpackage is not the only tool for bundling Java. There is also warp-packer, an open-source tool to create self-contained binary applications from Node.js, .NET Core, and Java. warp-packer requires a similar workflow to Method 2, where you create your modified Java Runtime image and an executable script before bundling everything together into an executable.
-
Options for turning Java into .exe or: abusing GraalVM to generate a launcher .exe
https://github.com/dgiagio/warp just googled it, no direct experience
-
Cross-platform, cross-compiled JavaFX desktop application
KeenWrite is my free, open-source, cross-platform desktop Markdown text editor developed using JavaFX. The installer script uses warp-packer to create installation-free self-extracting binaries for Windows and Linux.
-
The Decline and Fall of Java on the Desktop Part 1 (1999-2005)
My desktop text editor[1] is written using JavaFX and leans on Warp Packer[2] to create installer-free, multi-platform executable binaries (without jlink). A user contributed a new dark theme[3], which blends nicely with the desktop.
The JavaFX-based WebView (an HTML rendering component) is lauded, but has no direct API to control the scroll position and is itself a memory hog. Scrolling must be handled through JavaScript, and that indirection is as unwieldy as you can probably imagine. FlyingSaucer is a workable alternative to WebView, but comes with numerous technical issues that rear themselves when embedding a Swing widget inside a JavaFX application---as I discovered during development.
Were I to start from scratch, I would definitely seek out alternative cross-platform programming languages for desktop application development.
[1]: https://github.com/DaveJarvis/keenwrite
[2]: https://github.com/dgiagio/warp
[3]: https://i.ibb.co/QpqS0NS/screenshot.png
-
In support of single binary executable packages
"Java -- possible, but you'll need a startup script to just call java -jar some-tool.jar; (also not a good fit for short-lived tools, mainly due to startup times;)"
Two technologies to look at:
* Warp Packer -- https://github.com/dgiagio/warp/
* Liberica Native Image Kit -- https://bell-sw.com/pages/liberica-native-image-kit/
Warp Packer bundles my JavaFX desktop application, KeenWrite into single binary executable files:
* https://github.com/DaveJarvis/keenwrite/releases/download/2.... (Linux)
* https://github.com/DaveJarvis/keenwrite/releases/download/2.... (Windows)
* https://github.com/DaveJarvis/keenwrite/releases/download/2....
The start-up time for the first launch of the .bin or .exe is slow because it unpacks to a user directory. Subsequent starts are fine enough, even when running from the command-line as a short-lived task. Here's the script that creates the self-contained executable files:
https://github.com/DaveJarvis/keenwrite/blob/master/installe...
To create a release for all three files, I run a single shell script from a build machine:
https://github.com/DaveJarvis/keenwrite/blob/master/release....
I could probably generate a binary for MacOS, but not enough people have asked.
rust-cross
-
Anything C can do Rust can do Better
rust-cross, Everything you need to know about cross compiling Rust programs! - Jorge Aparicio
-
GitHub Actions can't find built binaries to put them to a release
on: push: tags: - 'v*' name: Cross-compile and release jobs: build: name: Build runs-on: ubuntu-latest strategy: matrix: target: # https://github.com/japaric/rust-cross#the-target-triple - x86_64-unknown-linux-gnu - x86_64-pc-windows-gnu - wasm32-unknown-emscripten steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable target: ${{ matrix.target }} override: true - uses: actions-rs/cargo@v1 with: use-cross: true command: build args: --release --target=${{ matrix.target }} release: name: Release needs: [ build ] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: clean: false - uses: nowsprinting/check-version-format-action@v3 id: version with: prefix: 'v' - name: Create release id: new_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} body: | Changes in this release: - First change - Second change draft: false prerelease: false - name: Upload 64-bit Windows build uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: asset_path: target/release/client.exe asset_name: client-${{ matrix.target }}-${{ steps.version.outputs.full }}.exe asset_content_type: application/zip upload_url: ${{ steps.new_release.outputs.upload_url }} - name: Upload 64-bit Linux build uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: asset_path: target/release/client asset_name: client-${{ matrix.target }}-${{ steps.version.outputs.full }} asset_content_type: application/zip upload_url: ${{ steps.new_release.outputs.upload_url }} - name: Upload 32-bit WebAssembly build uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: asset_path: target/release/client.wasm asset_name: client-${{ matrix.target }}-${{ steps.version.outputs.full }}.wasm asset_content_type: application/zip upload_url: ${{ steps.new_release.outputs.upload_url }}
-
In support of single binary executable packages
Well, at least that's that easy if what you try to compile don't have C dependencies. For C dependencies, there is cross <https://github.com/japaric/rust-cross> which I had good experiences with.
-
Hey Rustaceans! Got an easy question? Ask here (15/2021)!
Oh, this was the first thing that came up: https://github.com/japaric/rust-cross
What are some alternatives?
cljfx - Declarative, functional and extensible wrapper of JavaFX inspired by better parts of react and re-frame
xargo - The sysroot manager that lets you build and customize `std`
HumbleUI - Clojure Desktop UI framework
Clippy - A bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/
Main - 📦 The default bucket for Scoop.
Module Linker - browse modules by clicking directly on "import" statements on GitHub
jdeploy - Developer friendly desktop deployment tool
just - 🤖 Just a command runner
AudioBookConverter - Improved AudioBookConverter based on freeipodsoftware release (mp3 to m4b converter)
cargo-linked - Display linked packages for compiled rust binaries
KeenWrite - Free, open-source, cross-platform desktop Markdown text editor with live preview, string interpolation, and math.
iced - A cross-platform GUI library for Rust, inspired by Elm