Neutralinojs Versions Save

Portable and lightweight cross-platform desktop application development framework

nightly

2 weeks ago

:warning: Nightly build: This nighly-release may contain experimental features and breaking changes.

What's new

No changes — this version is similar to the previous version

Update the config file option cli.binaryVersion with nightly and enter neu update to fetch this version.

Get started: https://neutralino.js.org/docs


This release was auto-generated by ReleaseZri :rocket:

v5.1.0

4 weeks ago

What's new

Configuration: window transparency

Neutralinojs offers the inbuilt borderless mode and draggable region API to create custom window frames using HTML and CSS. Earlier, Neutralinojs used a default opaque color (usually white) for the window and webview layer, so app developers couldn't make custom CSS-styled window frames transparent or implement custom window frame shapes (i.e., rounded edges). Now, it offers the window.transparent boolean flag to activate window transparency.

If the transparency mode is on, the Neutralinojs window and webview use an alpha color layer and become transparent, so developers can use the rgba CSS color function on body background to handle the transparency level of the app.

The transparency mode can be activated using the --window-transparent=<bool> internal command-line option too.

Note: This feature is not implemented for the Windows operating system yet.

API: clipboard

  • Implement clipboard.readImage() and clipboard.writeImage(image) functions to work with clipboard image data.
  • Expose the clipboard.clear() function to clear system clipboard.
  • Expose the clipboard.getFormat() function to check the system clipboard data format. This function returns text, image, and unknown enum values based on existing data on the clipboard.

Update the config file option cli.binaryVersion with 5.1.0 and enter neu update to fetch this version.

Get started: https://neutralino.js.org/docs


This release was auto-generated by ReleaseZri :rocket:

v5.0.0

2 months ago

What's new

API: Reading, writing with standard streams

  • Implement app.readProcessInput(readAll=false) for reading string data from the standard input stream. This function can read a single line or multiple lines at once.
  • Implement app.writeProcessOutput and app.writeProcessError for sending string data to standard output and error streams accordingly.

API: filesystem

  • Enable default recursive behavior in the filesystem.createDirectory function.
  • Add filesystem.copy, filesystem.move, and filesystem.remove functions.
  • Add {recursive} options object to filesystem.readDirectory(path, options) activate recursive directory listing.

API: os

  • Accept stdin with the background mode of the os.execCommand function.

Core: security

  • Now, all app clients and extensions require a valid connect token (A part of the NL_TOKEN) to connect to the Neutralinojs framework WebSocket server to receive app events.
  • The framework now sends the access token, connect token, port, and extension identifier to extension processes via the standard input, so other processes can't read them by scanning the process list.
  • The WebSocket client connection origin is checked during the HTTP/WS handshake to make sure that only local clients connect with a specific Neutralinojs app that runs on window, browser, or Chrome mode. Any URL origin is allowed for the cloud mode.
  • The above security enhancements fix two security advisories on GitHub.

Global variables

  • Now the NL_ARCH global variable returns the same value that computer.getArch returns.

Deprecations

  • Removed filesystem.removeFile, filesystem.removeDirectory, filesystem.copyFile, and filesystem.moveFile functions.
  • Extensions won't receive --nl-port, --nl-token, and --nl-extension-id as command-line arguments. Now the framework sends these via stdin as a JSON string.

Update the config file option cli.binaryVersion with 5.0.0 and enter neu update to fetch this version.

Get started: https://neutralino.js.org/docs


This release was auto-generated by ReleaseZri :rocket:

v4.15.0

4 months ago

What's new

Configuration: custom user agent string

Developers sometimes use the user agent string to indentify the client in server-side and client-side source codes. Now, Neutralinojs lets app developers extend the default user agent string with a custom string via the window.extendUserAgentWith configuration property and the --window-extend-user-agent-with=<string> command-line option, as shown in the following example:

"window": {
  // ---
  "extendUserAgentWith": "MyAppClient"
}

The above configuration extends the user agent string:

console.log(navigator.userAgent)    // <Default UA> MyAppClient 

Configuration: custom configuration files

The Neutralinojs framework typically loads the application configuration content from the neutralino.config.json file, but sometimes app developers need to use a custom configuration filename during development (i.e., For separating production and development environments). Now, you can use the --config-file=<filename> internal command-line parameter to use a custom app configuration, as shown in the following example:

./myapp-linux_x64 --load-dir-res --config-file=neutralino-dev.config.json

Update the config file option cli.binaryVersion with 4.15.0 and enter neu update to fetch this version.

Get started: https://neutralino.js.org/docs


This release was auto-generated by ReleaseZri :rocket:

v4.14.1

6 months ago

What's new

DevOps

  • Use Windows 2019 server and macOS 11 (Big Sur) to compile framework release artifacts.
  • Set minimum supported macOS version via MACOSX_DEPLOYMENT_TARGET=10.7

Update the config file option cli.binaryVersion with 4.14.1 and enter neu update to fetch this version.

Get started: https://neutralino.js.org/docs


This release was auto-generated by ReleaseZri :rocket:

v4.14.0

7 months ago

What's new

Filesystem API

  • Introduce the filesystem.getWatchers function to get all created watchers.
  • Add binary file reading support for the filesystem.updateOpenedFile(id, action, data) function. This function implements readBinary and readAllBinary actions and dataBinary output action in the openedFile global event.
  • Return the existing watcher identifier from filesystem.createWatcher if there is an existing active watcher for the given path.

OS API

  • Add a way to set current working directory for process creation functions: os.execCommand(command, options) now supports cwd via the options object and os.spawnProcess(command, cwd) accepts currently working directory via the second string parameter.

Improvements/bugfixes

  • Fix Unicode charactor issues in the tray menu on Windows.
  • Avoid including null bytes to file reader events initiated by the filesystem.openFile function.
  • Discard window method executions on non-window modes.

DevOps

  • Update external GitHub Action packages to their latest versions.
  • Fix issues of the failing test cases

Update the config file option cli.binaryVersion with 4.14.0 and enter neu update to fetch this version.

Get started: https://neutralino.js.org/docs


This release was auto-generated by ReleaseZri :rocket:

v4.13.0

8 months ago

What's new

Core: persistent window state

Now the framework stores the primary window state in a temporary file (JSON formatted) and loads during the startup process. This feature stores and sets the window position (x, y coordinates), size (width and height), and maximized status. This feature is enabled by default in all platforms, but app developers can turn it off by using false for the window.useSavedState configuration attribute or --window-use-saved-state internal CLI argument.

Also, the window state loading status is available via the NL_WSAVSTLOADED global variable. The framework sets true for this boolean variable if the window state was loaded from the saved configuration.

Improvements/bugfixes

  • Fix several issues in the webview Windows code (i.e., Wait for the window close event, window style fixes, etc.).

Update the config file option cli.binaryVersion with 4.13.0 and enter neu update to fetch this version.

Get started: https://neutralino.js.org/docs


This release was auto-generated by ReleaseZri :rocket:

v4.12.0

10 months ago

What's new

API: window

  • Add window.center to center the application window programmatically.

Core: configuration

  • Setting the initial window position via modes.window.x and modes.window.y integer config props.
  • Centering the window at startup via modes.window.center boolean config props.
  • Add config overrides for the startup window position: --window-center=<true|false>, --window-x=<int> and --window-y=<int>

Core: webview

  • Statically link the Webview2 loader library on Windows, so app developers can package their apps without including the WebView2Loader.dll file.

Improvements/bugfixes

  • Added Unicode characters support for Neutralinojs Windows.

Update the config file option cli.binaryVersion with 4.12.0 and enter neu update to fetch this version.

Get started: https://neutralino.js.org/docs


This release was auto-generated by ReleaseZri :rocket:

Download Neutralinojs

v4.11.0

1 year ago

What's new

API: File watchers

In some scenarios, Neutralinojs app developers need to implement file watchers in their apps. Earlier, Neutralinojs API didn't offer a native file watcher API and developers had to use less-performant workarounds, such as making recursive filesystem.readDirectory calls. The new file watchers API lets you create native, cross-platform, event-based file watchers for filesystem paths with the following functions:

  • filesystem.createWatcher(path): Creates a new file watcher for a given path and returns the watcher identifier.
  • filesystem.removeWatcher(watcherId): Removes a files watcher based on a file watcher identifier.

Whenever a filesystem change occurs, file watcher instances dispatch the watchFile event with the following data:

  • id: Watcher identifier
  • action: Filesystem change: add, delete, modified, and moved
  • dir: Directory path
  • filename: Modified file

Improvements/bugfixes

  • Fix the initial window flashing and hidden window state issues on Windows.
  • Fix data corruption in binary file appending.
  • Apply dark/light themes based on system preferences on Windows.

Update the config file option cli.binaryVersion with 4.11.0 and enter neu update to fetch this version.

Get started: https://neutralino.js.org/docs


This release was auto-generated by ReleaseZri :rocket:

Download Neutralinojs

v4.10.0

1 year ago

What's new

DevOps

  • Generate official macOS arm64 (For Apple M1 and higher devices) and universal binaries with the GitHub workflow.

Improvements/bugfixes

  • Add a JSON schema definition for the neutralino.config.json file.
  • Fix source code compilation issues on macOS arm64 systems.

ESM/NPM support

Neutralinojs typically stores the client library implementation in a separate file (neutralino.js). This approach makes Neutralinojs app development process easier with a globally exposed JavaScript object, Neutralino. But, modern web developers use ES modules and they usually like to fetch dependencies from NPM. So, now, developers can load the __neutralino_globals.js internal script (i.e., <script src="__neutralino_globals.js"></script>) to load only globals. Then, they can use the client library implementation via neutralino.mjs with the neu CLI or from @neutralinojs/lib with a Node package manager.

Update the config file option cli.binaryVersion with 4.10.0 and enter neu update to fetch this version.

Get started: https://neutralino.js.org/docs


This release was auto-generated by ReleaseZri :rocket:

Download Neutralinojs