Latest release

fuse X 2.9.1

Download links

Read the installation guide

Changes since v2.9.0

Windows

  • Removed Git for Windows installer (no longer needed since android-build-tools 1.10)

Changes since v2.8.0

macOS

  • New launcher and uri-handler app installed in /Applications/
  • Make menu bar icon smaller

Windows

  • Sign executables and the installer using a Verified Publisher (EV certificate)

Fuselibs 2.9.2

Click to see the full changelog

Fuse.Maps

  • com.google.android.gms:play-services-maps -> 17.0.0 (#1494)

This is the minimum version required to be published on Google Play.

v2.9.1...v2.9.2

Fuse.PushNotifications

  • Remove AD_ID permission on Android (#1482)

v2.9.0...v2.9.1

Fuse.LocalNotifications

  • Support latest Android and iOS version (#1473)
  • Fix package name on Android (#1477)

Fuse.PushNotifications

  • Upgrade firebase-messaging -> 23.2.0 (#1479)
  • Upgrade firebase-analytics -> 21.3.0 (#1479)
  • Support latest Android version (#1479)

v2.8.0...v2.9.0

Uno 2.9.3

Click to see the full changelog

Uno.Collections

  • Fix case mismatch in project file (#523)

v2.9.2...v2.9.3

Android

  • Fix Google Maps package visibility (#508)

v2.9.1...v2.9.2

Android

  • Upgrade gradle-plugin -> 7.4.2 (#506)
  • Upgrade gradle -> 7.6.2 (#507)

v2.9.0...v2.9.1

Android

  • Set target API -> 33 (#504)
  • Set minumum API -> 19 (#504)

macOS

  • Upgrade xamarin-mac -> 9.3.0 (bbe196a)

v2.8.0...v2.9.0

Preview app

Latest beta

fuse X 3.0.0-beta.2

Download links

Read the installation guide

Changes since v2.9.1

  • Ported to .NET 6.0 – Mono Runtime no longer needed

Please report issues here

Fuselibs 3.0.0-beta.9

Click to see the full changelog

Common

  • Add outputType in project files (acbcee3)
  • Update project and config files (85ff816)
  • Update GLHelper.h includes on Android (2b143eb)
  • Simplify Android runtime version check (#1480)
  • Update macros and uxl files (#1491)

Experimental.TextureLoader

  • Remove legacy Experimental.TextureLoader library (#1458)

Fuse.Camera

  • Update permissions for Android 13 (#1487)

Fuse.Common

  • Remove obsolete methods and enum value (#1492)
    • Fuse.Json.Escape(string s)
    • Fuse.Json.Escape(string s, StringBuilder sb)
    • Fuse.SystemFont.Weight.SemiBold

Fuse.Controls.Video

  • Upgrade Fuse.Video.CIL to .NET 6.0 (#1475)

Fuse.Drawing.Surface

  • Update assembly references for .NET 6.0 (#1476)

Fuse.LocalNotifications

  • Fix compatibility with the latest Android OS and indentation (#1473)

Fuse.Nodes

  • Remove obsolete methods (#1492)
    • Fuse.VisualBounds.Transform(float4x4 matrix)
    • Fuse.VisualBounds.TransformFlatten(float4x4 matrix)
    • Fuse.VisualBounds.BoxTransform(Box box, float4x4 transform)

Fuse.Scripting

  • Deprecate NativePromise without Context (#1467)
  • Remove obsolete methods (#1492)
    • Fuse.Scripting.IThreadWorker.Invoke(Uno.Action action)
    • Fuse.Scripting.Context.Invoke(Uno.Action action)
    • Fuse.Scripting.ModuleResult.Object
    • Fuse.Scripting.ModuleResult.Exports
    • Fuse.Scripting.NativeEvent.RaiseAsync(params object[] args)
    • Fuse.Scripting.Object.InstanceOf(Function type)
    • Fuse.Scripting.Object.CallMethod(string name, params object[] args)
    • Fuse.Scripting.Function.Call(params object[] args)
    • Fuse.Scripting.Function.Construct(params object[] args)

Fuse.Scripting.JavaScript

  • TypeScript and transpiler support in UX files (#1472)
  • Upgrade V8Simple.net for .NET 6.0 (#1483)

Other changes

  • Upgrade Fuse.Profiling tool to .NET 6.0 (#1474)
  • Upgrade android-build-tools to v2.x (#1488)
  • Ignore tests failing on macOS (#1484)
  • Kill tests after 15 minutes (#1489)

v2.9.1...v3.0.0-beta.9

Uno 3.0.0-beta.10

Click to see the full changelog

Architecture

  • Port codebase to .NET 6.0 and Visual Studio 2022 (#424)
  • Update default output directory (#435)
  • Update packaging for .NET 6.0 (#436)
  • Remove version directory inside built libraries (#437, #515)
  • Update terminology on library vs. package (#440, #502)
  • Print arm and arm64 architectures in lowercase (#468)
  • Use the new HttpClient class on .NET 6.0 (#467)
  • Export API to run uno from JavaScript/TypeScript (#469)
  • Replace System.Drawing on macOS and Linux (#470)
  • Hide output from external image converters (#480)
  • Make sure the uno command is executable (#481)
  • Swallow InvalidOperationException in KillTree() (#484)
  • Rename manifest file in libraries (#495)
  • Remove framework directory from output path (#501)
  • Various tweaks and improvements (#490, #493, #496)

unoconfig

  • Remove isRoot and skipIfRoot properties (#451)
  • Rename packages -> searchPaths properties (#453)
  • Rename packages.default -> references.default (#464)

unoproj

  • Rename packages -> references (#454)
  • Accept lowerCamelCase property names (#466)
  • Update unoproj and unoconfig files (#474)
  • Add outputType property (#483)
  • Add outputType.appTest option (#494)

uxl

Android

  • Make arm64 default for debug builds (#475)
  • Upgrade to Gradle 8.2 and JDK17 (#516, #518)

iOS

  • Make iOS 11 the default deployment target (#476)

macOS

  • Use Microsoft.macOS.SDK in app loader (#438)
  • Remove macOS binaries from package (#439)
  • Get macOS app loader from NuGet (#450)
  • Remove xamarin-mac dependency (#479)
  • Use xcode-devteams for information (#511)
  • Fix native library loading on .NET 6.0 (#513)

Compiler

  • Remove GRADLE and UNO_TEST defines (#455)
  • Define TEST when running tests (#463)
  • Require XML attribute values to be quoted (#465)
  • Return "if-test and throw" when compiling assert statements (#477)
  • Remove a temp hack and some old TODOs (#485)
  • Build console apps with Main() entrypoints (#489)
  • Accept ForeignInclude attributes on methods (#491)
  • Accept array arguments in attributes (#491)
  • Refactor build queue classes (#497, #503, #509)
  • Lazy compilation for .NET targets (opt-in) (#487)

C++ backend

  • Use a comparer when sorting in IncludeResolver (#461)
  • Fix Android compile errors on macOS (#478)
  • Move Android C++ files to uDroid/ (#456)
  • Move platform-related code to uPlatform/ (#457)
  • Add back deprecated header on Android (#462)
  • Verify v-tables when DEBUG_UNSAFE is defined (#488)
  • Reorganize source files (#492)

UX compiler

  • Transpile TypeScript and JavaScript code in UX files (#482)

Test runner

  • Use console app loader on .NET by default (#486)
  • Use more newlines in the log output (#498)
  • Don't print stats with --build-only (#510)
  • Add --clean parameter (#512)

Disassembler

  • Fix solution on .NET 6.0 (#499)
  • Embed resources and upgrade packages (#500)

UnoCore

  • Remove legacy Uno.Buffer class (#441)
  • Remove legacy Uno.Diagnostics.Debug class (#442)
  • Publish FuseOpen.UnoCore package on NuGet (#460)
  • Use params in Foreign attributes (#491)

Uno.Graphics.Utils

  • Remove reference to Experimental.TextureLoader (#444)

Uno.Permissions

  • Remove legacy Uno.Permissions library (#443)

Other changes

  • Kill tests after 15 minutes on CI (#521)

v2.9.2...v3.0.0-beta.10

Latest SDK

Fuse SDK 2.9.1

Install

npm install fuse-sdk@2.9.1

Changes since v2.8.0

Fuselibs 2.9.2

Click to see the full changelog

Fuse.Maps

  • com.google.android.gms:play-services-maps -> 17.0.0 (#1494)

This is the minimum version required to be published on Google Play.

v2.9.1...v2.9.2

Fuse.PushNotifications

  • Remove AD_ID permission on Android (#1482)

v2.9.0...v2.9.1

Fuse.LocalNotifications

  • Support latest Android and iOS version (#1473)
  • Fix package name on Android (#1477)

Fuse.PushNotifications

  • Upgrade firebase-messaging -> 23.2.0 (#1479)
  • Upgrade firebase-analytics -> 21.3.0 (#1479)
  • Support latest Android version (#1479)

v2.8.0...v2.9.0

Uno 2.9.3

Click to see the full changelog

Uno.Collections

  • Fix case mismatch in project file (#523)

v2.9.2...v2.9.3

Android

  • Fix Google Maps package visibility (#508)

v2.9.1...v2.9.2

Android

  • Upgrade gradle-plugin -> 7.4.2 (#506)
  • Upgrade gradle -> 7.6.2 (#507)

v2.9.0...v2.9.1

Android

  • Set target API -> 33 (#504)
  • Set minumum API -> 19 (#504)

macOS

  • Upgrade xamarin-mac -> 9.3.0 (bbe196a)

v2.8.0...v2.9.0

Fuse SDK 3.0.0-beta.4

Install

npm install fuse-sdk@3.0.0-beta.4

Changes since v2.9.0

  • Ported to .NET 6.0 – Mono Runtime no longer needed

Fuselibs 3.0.0-beta.8

Click to see the full changelog

Common

  • Add outputType in project files (acbcee3)
  • Update project and config files (85ff816)
  • Update GLHelper.h includes on Android (2b143eb)
  • Simplify Android runtime version check (#1480)

Experimental.TextureLoader

  • Remove legacy Experimental.TextureLoader library (#1458)

Fuse.Controls.Video

  • Upgrade Fuse.Video.CIL to .NET 6.0 (#1475)

Fuse.Drawing.Surface

  • Update assembly references for .NET 6.0 (#1476)

Fuse.LocalNotifications

  • Fix compatibility with the latest Android OS and indentation (#1473)

Fuse.Scripting

  • Deprecate NativePromise without Context (#1467)

Fuse.Scripting.JavaScript

  • TypeScript and transpiler support in UX files (#1472)
  • Upgrade V8Simple.net for .NET 6.0 (#1483)

Other changes

  • Upgrade Fuse.Profiling tool to .NET 6.0 (#1474)
  • Ignore tests failing on macOS (#1484)

v2.9.1...v3.0.0-beta.8

Uno 3.0.0-beta.9

Click to see the full changelog

Architecture

  • Port codebase to .NET 6.0 and Visual Studio 2022 (#424)
  • Update default output directory (#435)
  • Update packaging for .NET 6.0 (#436)
  • Remove version directory inside built libraries (#437)
  • Update terminology on library vs. package (#440, #502)
  • Print arm and arm64 architectures in lowercase (#468)
  • Use the new HttpClient class on .NET 6.0 (#467)
  • Export API to run uno from JavaScript/TypeScript (#469)
  • Replace System.Drawing on macOS and Linux (#470)
  • Hide output from external image converters (#480)
  • Make sure the uno command is executable (#481)
  • Swallow InvalidOperationException in KillTree() (#484)
  • Rename manifest file in libraries (#495)
  • Remove framework directory from output path (#501)
  • Various tweaks and improvements (#490, #493, #496)

unoconfig

  • Remove isRoot and skipIfRoot properties (#451)
  • Rename packages -> searchPaths properties (#453)
  • Rename packages.default -> references.default (#464)

unoproj

  • Rename packages -> references (#454)
  • Accept lowerCamelCase property names (#466)
  • Update unoproj and unoconfig files (#474)
  • Add outputType property (#483)
  • Add outputType.appTest option (#494)

Android

  • Make arm64 default for debug builds (#475)

iOS

  • Make iOS 11 the default deployment target (#476)

macOS

  • Use Microsoft.macOS.SDK in app loader (#438)
  • Remove macOS binaries from package (#439)
  • Get macOS app loader from NuGet (#450)
  • Remove xamarin-mac dependency (#479)
  • Use xcode-devteams for information (#511)
  • Fix native library loading on .NET 6.0 (#513)

Compiler

  • Remove GRADLE and UNO_TEST defines (#455)
  • Define TEST when running tests (#463)
  • Require XML attribute values to be quoted (#465)
  • Return "if-test and throw" when compiling assert statements (#477)
  • Remove a temp hack and some old TODOs (#485)
  • Build console apps with Main() entrypoints (#489)
  • Accept ForeignInclude attributes on methods (#491)
  • Accept array arguments in attributes (#491)
  • Refactor build queue classes (#497, #503, #509)
  • Lazy compilation for .NET targets (opt-in) (#487)

C++ backend

  • Use a comparer when sorting in IncludeResolver (#461)
  • Fix Android compile errors on macOS (#478)
  • Move Android C++ files to uDroid/ (#456)
  • Move platform-related code to uPlatform/ (#457)
  • Add back deprecated header on Android (#462)
  • Verify v-tables when DEBUG_UNSAFE is defined (#488)
  • Reorganize source files (#492)

UX compiler

  • Transpile TypeScript and JavaScript code in UX files (#482)

Test runner

  • Use console app loader on .NET by default (#486)
  • Use more newlines in the log output (#498)
  • Don't print stats with --build-only (#510)
  • Add --clean parameter (#512)

Disassembler

  • Fix solution on .NET 6.0 (#499)
  • Embed resources and upgrade packages (#500)

UnoCore

  • Remove legacy Uno.Buffer class (#441)
  • Remove legacy Uno.Diagnostics.Debug class (#442)
  • Publish FuseOpen.UnoCore package on NuGet (#460)
  • Use params in Foreign attributes (#491)

Uno.Graphics.Utils

  • Remove reference to Experimental.TextureLoader (#444)

Uno.Permissions

  • Remove legacy Uno.Permissions library (#443)

v2.9.2...v3.0.0-beta.9

Source code

Fuse Open

The Fuse Open project maintains open source components for building high quality apps (MIT license).

The components are bundled together in Fuse SDK and can be installed via npm i fuse-sdk, or separately if desired.

  • Uno: A programming language (and a compiler), which is a dialect of C#. Unlike the traditional C# development tools, Uno generates C++ code that can be compiled with the normal native development tools (Android Studio and Xcode).
  • UX: An XML-based declarative UI language. This is implemented in the Uno compiler.
  • Fuselibs: An application framework written in Uno, that implements the core of the Fuse development platform. The Fuselibs components are intended to be used from UX. Fuselibs depends on the Uno compiler.
fuse X

The source code is available for contributors.

Please contact us for details.

Translations

fuse X
English French Korean

The application is currently available in English, French and Korean.

You are welcome to add your own language or help us fix mistakes if you want to.

Please open an issue if you have any questions.