New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feat] Adapt deno_tauri #30
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[feat] init command
[feat] Runtime refactoring
Updating todos
[feat] AppWindow.close()
feat: unit tests 1
[Feat] astrodon-build Builder unit tests
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a summary of all the changes we have been working on for the past 2.5 months. Original poc deno_tauri.
Description
Astrodon doesn't use FFI anymore, instead it has it's own Deno runtime that integrates natively with Wry. This allows Astrodon to stay performant while ensuring cross-platform compatibility, which we previosuly didn't have.
Astrodon is not meant to be a simple library, but a framework in which to build apps on.
Changes
Config file
Astrodon projects now require some more information, like the app's name, version, description, etc.. Like shown in the example.
Example:
Cli
Astrodon now has a CLI you can use if you want ( we recommend you to), unless you have very specific cases.
It has these commands:
astrodon build
Used to build the standalone version of your app. Cross-compiling is supported too.
astrodon run
Used to run your app in development mode.
astrodon init
Easily create a new project.
Development & build scripts
If the CLI built-in
build
andrun
commands are not enough for you, you can make use of the internal APIs, like showed in here withBuilder
andDevelop
.Installers
We provide an integration with
deno_installer
, this means you can easily create Installers for your apps, it supports the three major OS, Windows, MacOS And Linux. But, you cannot cross-compile the installers since each one depends on OS-dependencies.Runtimes
NOTE: These are just the internals of Astrodon, you won't need to care about this.
Astrodon runtime, this is the Deno Runtime with built-in APIs for wry. This serves as base layer for the development and standalone runtimes.
The Development Runtime is only used for development purposes, it has some development-only features such as parsing TypeScript, HTTP imports, which we believe it only makes sense while developing.
That's why there is also the Standalone Runtime, it's a more lightweight version and it's meant to be used only production. It puts the source code of your app (not your frontend assets yet, for that you would need to pack them with the installer for now, we also plan to bundle them) in a binary alongside the runtime, like Deno does, with
eszip
).Since we do not use Deno's CLI, the final executable size is smaller. But, this comes with some trade-offs, like not supporting
deno test
, if Deno's CLI was more modularized...Conclusion
There is still a lot of work to-do, but I think we are going pretty good. For now, we will keep working on this next release
0.2.0-alpha.1
and publish it when it's ready.