neutralinojs

Portable and lightweight cross-platform desktop application development framework

OTHER License

Stars
7.2K
Committers
75

Bot releases are hidden (Show)

neutralinojs - Neutralinojs v4.0.0 released!

Published by shalithasuranga almost 3 years ago

Milestone v4.0.0 was closed with 31 issues.

What's new

API: os.execCommand

  • Renamed shouldRunInBackground option to background.
  • Supports stdIn as an optional input.
  • Returns multiple values: stdOut, stdErr, pid, and exitCode.

Core: API extensions

  • Config file supports new extensions array globally or in a specific mode.
  • Neutralino spawns extension processes based on extensions array.
  • Neutralino doesn't send kill signals to extension processes. The extension developer needs to stop
    processes properly.
  • extension setting has 4 fields: id, command, commandLinux,commandDarwin, and commandWindows.
  • The command's (platform-specific command's) value accepts ${NL_PATH} global variable.
  • Each extension process instance is called with three CLI args: --nl-port={}, --nl-extension-id={} and --nl-token={}
  • Enable/disable extensions with enableExtensions config.

Core: Static server

  • Supports setting document root (with documentRoot) via config. Now, it's possible to launch the app without a subdirectory in the URL.

Core: Community driver processes

Now developers can use Neutralinojs as a part of their software with any programming language by spawning Neutralinojs as a child process.
Use exportAuthInfo to write auth details to ${NL_PATH}/.tmp/auth_info.json. Then the parent process can pick up access details there. Note that WebSocket communication needs to be initiated via extensions API/loader.

API: app.broadcast

  • Sends an event to all app clients. This method is for extension developers.

API: events.broadcast

  • Sends an event to all clients (apps and extensions). Useful for notifying important general events.

API: extensions

  • dispatch: Sends an event to a specific extension.
  • broadcast: Sends an event to all connected extensions. Useful for sending shutdown signals.
  • getStats: Returns details about loaded extensions and connected extensions.

API: updater

  • checkForUpdates: Send a request to a seed URL (JSON) and fetch update details.
  • install: Install updates based on the currently downloaded manifest.

Events

  • appClientConnect and appClientDisconnect: Occurs when a new app instance is launched and closed respectively.
  • extClientConnect and extClientDisconnect: Occurs when a new extension is connected and disconnected respectively.
  • extensionReady can be used to implement immediate extension calls. This is implemented from the client-side with extensions.getStats and extClientConnect. This event gurantees that it will be triggered regardless of the extension's start time.

Error codes

  • NE_EX_EXTNOTC: Thrown by extensions.dispatch if the target extension is not connected.
  • NE_UP_CUPDMER: Thrown by updater.checkForUpdates if the JSON update manifest is invalid or applicationId is not matching.
  • NE_UP_CUPDERR: Thrown by updater.checkForUpdates if the updater API cannot fetch the manifest.
  • NE_UP_UPDNOUF: Thrown by updater.install when the update manifest is not loaded.
  • NE_UP_UPDINER: Thrown by updater.install for update installation errors.

Bug fixes

  • Fix port 0 issue with modes. Earlier, if the developer sets port as 0 from a specific mode,
    the NL_PORT also becomes 0.
  • Fix an issue with writeToLogFile config option. Earlier, the log file was created even this
    option is set to false.

Global variables

  • NL_APPVERSION: Value of the version key in the config file.

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

Download Neutralinojs

neutralinojs - Neutralinojs v3.0.0 released!

Published by shalithasuranga about 3 years ago

Milestone v3.0.0 was closed with 16 issues.

What's new

  • New JavaScript API spec implementation.
  • Using WebSocket messages for native calls.
  • Error codes to identify failed native calls.
  • Static server improvements (404, support any mime-type, etc)
  • Add a way to close the window when a remote URL is loaded via the exitProcessOnClose config.
  • os.getPath(name) to get known platform-specific folders.
  • Support overriding root-level config properties from modes (Eg: One URL for browser mode and another for window mode).
  • New library for dialog boxes.
  • New config property (logging) for enabling/disabling logging feature.
  • New events: ready, clientConnect and clientDisconnect
  • Supports client library v2.0.0
  • Bugfixes and enhancements.

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.8.0 released!

Published by shalithasuranga about 3 years ago

Milestone v2.8.0 was closed with 5 issues.

What's new

  • armhf (32bit ARM) port (will work on Raspberry Pi).
  • Add NL_PID global variable to get the process ID.
  • Multiple windows creation.
  • Bugfixes and enhancements.

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.7.0 released!

Published by shalithasuranga about 3 years ago

Milestone v2.7.0 was closed with 7 issues.

What's new

  • windowClose event.
  • More MIME types support.
  • Binary file handling and more functions in the filesystem.
  • Sending exit code via app.exit() function.
  • Bug fixes and improvements.

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.6.0 released!

Published by shalithasuranga about 3 years ago

Milestone v2.6.0 was closed with 5 issues.

What's new

  • Draggable region support.
  • Allow wildcard * in block/allow lists.
  • nativeAllowList in config.
  • Allow filtering with Neutralino.os.showDialogOpen
  • Include 32-bit (ia32/x86_32) Linux binary in releases.
  • Enable 32-bit builds on all platforms (build from source).

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.5.0 released!

Published by shalithasuranga over 3 years ago

Milestone v2.5.0 was closed with 5 issues.

What's new

  • More window manipulation methods were added. Eg: setFullScreen, isFullScreen etc.
  • Bugfixes and improvements

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.4.1 released!

Published by shalithasuranga over 3 years ago

Milestone v2.4.1 was closed with 4 issues.

What's new

  • Bugfixes and improvements
  • Security enhancements

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.4.0 released!

Published by shalithasuranga over 3 years ago

Milestone v2.4.0 was closed with 2 issues.

What's new

  • Tray icon and menu API
  • FreeBSD support

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.3.0 released!

Published by shalithasuranga over 3 years ago

Milestone v2.3.0 was closed with 3 issues.

What's new

  • Fixed rendering issues with open/save dialogs on Windows.
  • Improved the resource loader module.
  • Added new window properties: minWidth, minHeight, maxWidth, maxHeight, and resizable

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.2.0 released!

Published by shalithasuranga over 3 years ago

Milestone v2.2.0 was closed with 3 issues.

What's new

  • Added new command-line arguments: --path=<path> and --mode=<mode>
  • Refactored multiple platform-specific codebases into one codebase.

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.1.1 released!

Published by shalithasuranga over 3 years ago

A patch version to replace c++ filesystem API with platform-specific code.

What's new?

  • Removed experimental C++ file system module usage (Replaced with platform-specific implementation).

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.1.0 released!

Published by shalithasuranga over 3 years ago

The v2.1.0 milestone was closed with 1 issue.

What's new?

  • Improve performance of the HTTP server (Replaced legacy code with a fast HTTP library).
  • Code refactoring and minor improvements.
  • Licensing was changed from GPL v3 to MIT (We no longer use GPL v3 licensed dependencies).

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

Download Neutralinojs

neutralinojs - Neutralinojs v2.0.0 released!

Published by shalithasuranga over 3 years ago

Implementation of v2 spec on Linux, Windows, and macOS.

What's new?

  • macOS support
  • Asynchronous JavaScript API
  • Config file improvements
  • Static file server
  • EdgeHTML/EdgeChromium renderers on Windows.

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

neutralinojs - Neutralinojs v1.9.0 released!

Published by shalithasuranga over 3 years ago

Milestone v1.9.0 was closed with 8 issues.

What's new

Highlights

  • Native message boxes API was added.
  • Resolved path issues. Now users can launch Neutralinojs apps from any working directory.
  • Improvements are done in the source code. Refactored the codebase by moving platform-independent code to a directory.
  • Bug fixes.

Native message boxes API

Now developers can have native message boxes in their Neutralinojs applications via the Neutralino.os.showMessageBox(Object options) method. The options object should contain the following properties.

  • string title: Title of the message box.
  • string content: Message box's content.
  • string type: Type of the message box. Accepted values are INFO, WARN, ERROR, and QUESTION.

Neutralinojs server will include the boolean yesClicked property into the response only for the question-type message boxes.

Example:

const options = {title: "Hello", content: "This is an example", type: "INFO"};
Neutralino.os.showMessageBox(options, function() { }, function() { });

Please notice that the macOS version of Neutralino is not having the most features. We will try to bring it to the same level soon.

Download Neutralinojs

neutralinojs - Neutralinojs v1.8.0 released!

Published by shalithasuranga over 3 years ago

Milestone v1.8.0 was closed with 5 issues.

What's new

Highlights

  • Resources loading from res.neu archive.
  • --load-dir-res pre-defined command line argument
  • Bugfixes and improvements were done to the Windows and Linux versions.

res.neu

When you release your application with the neu release command, all application resources will be bundled into the res. neu file. Therefore, now your final application bundle has platform-specific binaries and one resource file. If you need to load resources from the app directory, you can provide the --load-dir-res command-line argument.

Please notice that the macOS version of Neutralino is not having the most features. We will try to bring it to the same level soon.

neutralinojs - Neutralinojs v1.7.0 released!

Published by shalithasuranga almost 4 years ago

Milestone v1.7.0 was closed with 7 issues.

What's new

Highlights

  • Command-line arguments support.
  • Open a directory using the file-open dialog.
  • Adding support for the neu listen command.
  • Maximize-window option on the Windows platform.
  • Bugfixes and improvements were done to the Windows and Linux versions of Neutralinojs.

Command-line arguments

Now you can access an array of command-line arguments of the binary via NL_ARGS. --debug-mode is an in-built option for every Neutralinojs application. For now, it enables live reloading for developers.

Directory selection dialog

Now Neutralino.os.dialogOpen(options) will accept an object as the parameter. See the following example.

Neutralino.os.dialogOpen({title: "My dialog", isDirectoryMode:true});

Live-reload

The neu listen command will enable the live reload feature for developers. When the application is launched via either neu listen command or --debug-mode option, a modification on the app directory will automatically reload your application. Make sure your port 8080 is free before trying this feature.

Please notice that the macOS version of Neutralino is not having the most features. We will try to bring it to the same level soon.

Download Neutralinojs

neutralinojs - Neutralinojs v1.6.0 released!

Published by shalithasuranga almost 4 years ago

Milestone v1.6.0 was closed with 5 issues.

What's new

Highlights

  • Native notifications
  • Support asset paths with spaces and other special characters.
  • Made window.iconfile property as an optional property.
  • Maximize option for the main window on Linux.

Native notifications

Each operating system has an option to display notifications. Neutralino.os.showNotification(properties, s, e) will show a notification on the current operating system.

parameters

properties accepts a JSON object with the options for displaying a notification.

{
  "summary": "Title of the message",
  "body": "Content of the message"
}

s and e are usual callbacks for a generic Neutralinojs API function.

Maximize option for the window mode

window.maximize: <boolean> in settings.json

If this option has true, the main window will be maximized at the startup of the application. Otherwise, it will use the given height and width. The default value is false.

Example:

{
    "appname": "myapp",
    "appport": "5006",
    "mode": "window",
    "url": "/",
    "window": {
        "title": "My app",
        "width": "1000",
        "height": "700",
        "maximize": true
    }
}

Please notice that the macOS version of Neutralino is not having the most features. We will try to bring it to the same level soon.

Download Neutralinojs

neutralinojs - Neutralinojs v1.5.0 released!

Published by shalithasuranga over 4 years ago

Milestone v1.5.0 was closed with 10 issues.

What's new

  • window.iconfile feature was added to macOs
  • Improvements done to Neutralino.filesystem.readFile for handling non-existent files.
  • Router module's MIME type handling code was refactored and .mp3 file support was added to all platforms.
  • Binary file serving issue was fixed on Windows
  • Custom URL navigation feature is introduced.

Custom URL nagivation

url: <path> in settings.json

url setting value can be either / or a custom URL. This will be the entry point of Neutralino application. If / is provided, index.html will be served otherwise custom URL content will be served. Default value is /.

Example:

{
    "appname": "myapp",
    "appport": "5006",
    "mode": "window",
    "url": "/",
    "window": {
        "title": "My app",
        "width": "1000",
        "height": "700",
        "iconfile": "neutralino.png"
    }
}

Download Neutralinojs

neutralinojs - Neutralinojs v1.4.0 released!

Published by shalithasuranga over 4 years ago

Milestone v1.4.0 was closed with 11 issues.

What's new

  • window.title option added. Older setting was used as a shared identifier for url path and title whereas now appname is kind of app id (won't support spaces). Thus, window.title refers to the Native window title which supports spaces etc.

  • More native window properties/configuration added.

window.alwaysontop [bool] on all platforms

If true window will appear always on top.

window.borderless [bool] on all platforms

If true title bar will be hidden and allows developer to make their own title bar using CSS.

window.iconfile [string] on Windows and Linux

Sets an image/icon for Native window and it will appear on the task bar of the operating system. Transparent .png is recommended.

  • NL_CWD global variable was added to all platforms. it has the current working directory.

  • Binary file support was added to all platforms. Eg: .png like images will be served by the Neutralino file server.

  • Quick build script was added to the macos as well. (bash build.sh macos to build and copy all the things to dist)

Example settings.json structure for this version

{
    "appname" : "myapp",
    "appport" : "5006",
    "mode" : "window",
    "window" : {
        "title": "My app",
        "width" : "1000",
        "height" : "700",
        "fullscreen" : false,
        "alwaysontop": true,
        "borderless": false,
        "iconfile": "neutralino.png"
    }
}

Download Neutralinojs

neutralinojs - Neutralinojs v1.3.0 released!

Published by shalithasuranga almost 5 years ago

  • Fixed build errors on Windows (filesystem headers related)
  • Neutralino.debug.log() for all platforms
  • Developer guide for Neutralino-mac was added to the README
  • Neutralino.app.exit() for all platforms
  • Typescript starter app
  • Full screen mode for all platforms

Eg:-

{
    "appname" : "myapp",
    "appport" : "5006",
    "mode" : "window",
    "window" : {
        "width" : "1000",
        "height" : "700",
        "fullscreen" : true
    }
}

Milestone v1.3.0

Download Neutralinojs

Package Rankings
Top 6.69% on Proxy.golang.org
Badges
Extracted from project README
GitHub release (latest by date) GitHub last commit FOSSA Status Become a Patreon FOSSA Status