Important
Webinizer is now in Beta trial. We'd greatly appreciate your feedback!
Webinizer is a collection of tools to convert native applications, such as these programmed by C/C++/Rust, to Web applications which are constructed by HTML/CSS/JavaScript and WebAssembly.
Webinizer consists of two parts; a core engine that analyzes the code and then either fixes or highlights issues, and a web frontend to configure projects and display results. This repo consists of the core engine, for the web frontend see the webinizer-webclient repo.
We also provide the webinizer-demo repo that holds the demo projects and build scripts to setup Webinizer.
Webinizer provides scripts to build a Docker image that will setup everything for you and make Webinizer ready to use out of the box.
Please follow the Docker installation and setup guide for the detailed instructions.
The Webinizer also supports running locally without
Docker. Currently this is validated on Linux
(Ubuntu 20.04
).
Please follow the Run locally guide for the detailed instructions.
Webinizer User Manual is available under documentation/ folder with below structure.
- Installation and setup
- Build a simple project
- Build and define a library
- Build a project with dependencies
Webinizer provides an extension mechanism for developers to extend the capabilities of the tool.
- Extension Overview
- How to develop an Extension
- How to use an Extension
- How to install an Extension
- How to test an Extension
We're considering how to create a package format and repository hosting for libraries and applications ported to Wasm. There are proposals for module format and registry hosting in our wiki.
The steps to setup the development environment are similar to those described in Run Webinizer locally.
npm run serve
to launch the core engine server and start at port 16666.npm run test
to run the unit tests, see tests/README.md for details.npm run lint-fix
to format code with ESLint.npm run doc
to generate the Webinizer Extension API document into./docs
.npm run swagger-autogen
to generate the swagger specification for server RESTful APIs , see generate swagger specification for details.
It's preferred to use VS Code for development.
It's preferred to use Prettier formatter, along with Format on Save
. Please setup the
Prettier and
ESLint extensions and
configure them accordingly.
NOTE that we set printWidth as 100 and tab width as 2.
We welcome contributions to Webinizer. You can find more details in CONTRIBUTING.md .