aboutsummaryrefslogtreecommitdiff
path: root/MVP.md
blob: a9e19e2329ef519529c9d57dc4ab7f7823e2a135 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Minimum Viable Product

As stated in the [high-level goals](HighLevelGoals.md), the first release aims
at being a Minimum Viable Product (MVP). This means that there are important
features we *know* we want and need, but are post-MVP; these are in a separate
essential [post-MVP :unicorn:][future general] features document. The MVP will contain
features which are available today in modern web browsers and which perform well
even on mobile devices, which leads to roughly the same functionality as
[asm.js](http://asmjs.org).

The major design components of the MVP have been broken up into separate
documents:

* The distributable, loadable and executable unit of code in WebAssembly
  is called a [module](Modules.md).
* The behavior of WebAssembly code in a module is specified in terms of 
  [instructions](Semantics.md) for a structured stack machine.
* The WebAssembly binary format, which is designed to be natively decoded by 
  WebAssembly implementations, is specified as a 
  [binary encoding](BinaryEncoding.md) of a module's structure and code.
* The WebAssembly text format, which is designed to be read and written when
  using tools (e.g., assemblers, debuggers, profilers), is specified as a
  [textual projection](TextFormat.md) of a module's structure and code.
* WebAssembly is designed to be implemented both [by web browsers](Web.md)
  and [completely different execution environments](NonWeb.md).

[future general]: FutureFeatures.md