aboutsummaryrefslogtreecommitdiff
path: root/HighLevelGoals.md
diff options
context:
space:
mode:
authorLuke Wagner <mail@lukewagner.name>2015-04-29 15:11:28 -0500
committerLuke Wagner <mail@lukewagner.name>2015-04-29 15:11:28 -0500
commit12ee148fb5cfa33331dbffadae06752b1759a7bf (patch)
treef8830f366090492da3b797c99a77351ad43bcb02 /HighLevelGoals.md
parent1aff6a5eacd342f3d0e6ce37d2a7a2d2c7e5ad10 (diff)
downloadnanowasm-design-12ee148fb5cfa33331dbffadae06752b1759a7bf.tar.gz
Create HighLevelGoals.md
This high-level design goal list has been passed around and generally agreed upon, so I'll put it up. Of course we can continue to discuss and iterate in issues.
Diffstat (limited to 'HighLevelGoals.md')
-rw-r--r--HighLevelGoals.md16
1 files changed, 16 insertions, 0 deletions
diff --git a/HighLevelGoals.md b/HighLevelGoals.md
new file mode 100644
index 0000000..5c454ed
--- /dev/null
+++ b/HighLevelGoals.md
@@ -0,0 +1,16 @@
+# WebAssembly High-Level Design Goals
+
+1. Define a portable, size- and load-time-efficient binary format to serve as a web compilation target.
+2. Define a human-editable text format that is isomorphic and convertible to/from the binary format.
+3. Design v.1 to allow an effective (load-time and performance) [polyfill](https://github.com/WebAssembly/polyfill) via client-side compilation to [asm.js](http://asmjs.org).
+4. Design v.1 as a Minimum Viable Product: basically what you can do with [asm.js](http://asmjs.org).
+5. Design to integrate well with the existing web platform:
+ * execute in the same semantic universe as JavaScript;
+ * allow synchronous calls to and from JavaScript;
+ * enforce the same-origin security policy; and
+ * access browser functionality through the same Web APIs that are accessible to JavaScript.
+6. Design to maintain the versionless, feature-testing and backwards-compatible evolution story
+ of the web; engines should not need multiple, versioned decoders.
+7. Design to allow execution in non-browser environments.
+
+