mono-wasm | concept aiming at building C | Binary Executable Format library

 by   migueldeicaza JavaScript Version: 0.0.1 License: MIT

kandi X-RAY | mono-wasm Summary

kandi X-RAY | mono-wasm Summary

mono-wasm is a JavaScript library typically used in Programming Style, Binary Executable Format applications. mono-wasm has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

This project is a proof-of-concept aiming at building C# applications into WebAssembly, by using Mono and compiling/linking everything statically into one .wasm file that can be easily delivered to browsers. The process does not use Emscripten (or Binaryen) but instead uses the experimental WebAssembly backend of LLVM with clang and lld to generate the final .wasm code. The goal is to use as few dependencies as possible. At the moment the only dependencies are LLVM, clang and lld trunk. mono-wasm supports 2 build modes: one that links all the LLVM bitcode into one module then performs a WebAssembly codegen on it, and one that compiles project dependencies into WebAssembly incrementally (the runtime and the mscorlib assembly) then uses lld to link into a final .wasm file. The later is experimental but will become the default as it allows build times lesser than a second. The .wasm file is loaded from JavaScript (see index.js), which also exposes proper callbacks for system calls that the C library will be calling into. These syscalls are responsible for heap management, I/O, etc. This project is a work in progress. Feel free to ping me if you have questions or feedback: laurent.sansonetti@microsoft.com.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              mono-wasm has a low active ecosystem.
              It has 499 star(s) with 34 fork(s). There are 56 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 12 open issues and 7 have been closed. On average issues are closed in 31 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of mono-wasm is 0.0.1

            kandi-Quality Quality

              mono-wasm has 0 bugs and 0 code smells.

            kandi-Security Security

              mono-wasm has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              mono-wasm code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              mono-wasm is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              mono-wasm releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.
              mono-wasm saves you 29 person hours of effort in developing the same functionality from scratch.
              It has 80 lines of code, 0 functions and 8 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of mono-wasm
            Get all kandi verified functions for this library.

            mono-wasm Key Features

            No Key Features are available at this moment for mono-wasm.

            mono-wasm Examples and Code Snippets

            No Code Snippets are available at this moment for mono-wasm.

            Community Discussions

            Trending Discussions on mono-wasm

            QUESTION

            ServiceStack: Adding Blazor support?
            Asked 2019-May-31 at 14:17

            I have tried adding ServiceStack-references to a client-side Blazor project, but I run into problems after adding ServiceStack.HttpClient via NuGet.

            Currently, VS2019 will tell me that:

            Cannot find declaration of exported type 'System.Threading'

            and when ask/look around, they say that:

            Blazor is built using mono-wasm as the base .NET framework implementation, and in this case I believe it's a missing method in mono-wasm that's the issue.

            and

            at present Mono WASM has no support for threading; check the repo https://github.com/lrz/mono-wasm-mono for more info

            Am I getting it correctly:

            • ServiceStack requires System.Threading
            • WebAssembly and thus Blazor does not support references to System.Threading
            • Meaning that ServiceStack cannot be used in a Blazor app
            ...

            ANSWER

            Answered 2019-May-31 at 00:12

            @Ted,

            Blazor does not run in a multi-thread environment. Blazor (mono-wasm) runs in the same sandbox of JavaScript, in the same UI thread. No multi-threading, no concurrent or parallel programming. As I've said before, I've never heard of ServiceStack, but I guess that ServiceStack.HttpClient cannot be used in Blazor client side, as "Blazor HttpClient" is based on HttpMessageHandler, and it is adapted to work as an Ajax agent; that is, HttpClient communicate with the Back End via the JavaScript Fetch Web API, whereas ServiceStack, I believe, perform the traditional http client calls, employing Web Sockets, which is not supported in Blazor (mono-wasm). In Asp.Net Core 5.0 it is expected that Blazor client side would support Web Sockets, after mono would be replaced.

            No, the ServiceStack cannot be used in a Blazor app

            Hope this helps...

            Source https://stackoverflow.com/questions/56386712

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install mono-wasm

            We will assume that you want to build everything in the ~/src/mono-wasm directory.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/migueldeicaza/mono-wasm.git

          • CLI

            gh repo clone migueldeicaza/mono-wasm

          • sshUrl

            git@github.com:migueldeicaza/mono-wasm.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Consider Popular Binary Executable Format Libraries

            wasmer

            by wasmerio

            framework

            by aurelia

            tinygo

            by tinygo-org

            pyodide

            by pyodide

            wasmtime

            by bytecodealliance

            Try Top Libraries by migueldeicaza

            gui.cs

            by migueldeicazaC#

            TensorFlowSharp

            by migueldeicazaC#

            SwiftTerm

            by migueldeicazaSwift

            MonoTouch.Dialog

            by migueldeicazaC#

            TermKit

            by migueldeicazaSwift