Overview
What is Miletus?
Miletus (named after Thales of Miletus) started off as a project for TMS WEB Core to enable embedding web pages in desktop applications.
It uses HTML, JS, CSS (optionally along with other resources) to produce native applications for multiple platforms from one code base. If that sounds familiar to you then you have probably already came accross Electron, the most well-known framework for doing this.
So what's the difference? The main difference from Electron is the usage of the browser rendering engine available on your operating system, which significantly cuts down the application size and the number of output files.
Platform | Browser engine |
---|---|
Windows | WebView2 |
macOS | WebKit (Safari) |
Linux | WebKitGTK |
Raspberry Pi | WebKitGTK |
While this is a pro in terms of size, it's also a con as you need to make sure that a given system is prepared for a Miletus application. Check our Requirements section for more information on this.
Miletus comes in 2 parts:
API library
: Contains all the functionalities to interact with the operating system. This of course only works if the application is bundled with the packager.Packager
: Bundles your html, css, js, ... files into an application.
The Miletus API library is not strictly tied to Node.js. While it is an option to install the API library from npm, we also provide a precompiled JavaScript distribution that is ready to use.
Features
Miletus has support for the following key features:
- Native dialogs
- Native notifications
- Native application and popup menu
- Global shortcuts
- Create and interact with application windows
- Local file access
- Database access
- Raspberry PI hardware access
- Custom extensibility
- Helper functionalities (cursor position, OS information, etc...)
Supported platforms
Miletus supports the platforms below.
- Windows:
ia32
,x64
- macOS:
x64
,arm64
- Linux:
x64
- Raspberry Pi OS:
armv7l
Note
The last character in the armv7l
Rapsberry Pi OS target is a lowercase "L"
and not a "1".
With the exception of Raspberry Pi, you can develop from any of these platforms and target any of these platforms. This means you can create macOS applications on Windows and the other way around!
We currently don't offer a packager application for Raspberry Pi so only targeting is supported.
Requirements
Windows
- Edge browser:
- Windows 10 with automatic updates enabled has already Edge Chromium included that is used by Miletus. If you do not have automatic updates enabled or use an older version of Windows, install Edge Chromium from the following page: https://www.microsoft.com/en-us/edge
- Make sure the
WebView2Loader_x86.dll
andWebView2Loader_x64.dll
are copied underSystem32
andSysWow64
folders. The dlls can be found after installation in the source directory under the folder "Edge Support". Please note that these dlls are also necessary when deploying your application!
-
Edge WebView2:
Alternatively, when distributing your application, there are a few ways you can ensure the WebView2 Runtime is on client machines. More information can be found on the following page: https://developer.microsoft.com/en-us/microsoft-edge/webview2/
Linux and Raspberry Pi
Linux and Raspberry Pi applications are GTK3 based. Make sure you have GTK3 installed.
The used browser engine on Linux OSes is WebKitGTK. Install the libwebkit2gtk-4.0-dev library:
Important
Wayland is currently unsupported.
On Ubuntu distributions if after installing GTK3 and WebKitGTK the application remains blank, then it's possible Wayland needs to be disabled:
- Locate the configration file on your system. This can be usually found at
/etc/gdm3/custom.conf
. - Open the file with root privileges.
- Uncomment the
WaylandEnable=false
line. - Reboot your computer.