From 2c447e38e70a4d3ad21792f42acab309cd36a0b1 Mon Sep 17 00:00:00 2001 From: JF Bastien Date: Wed, 10 Jun 2015 13:48:02 +0200 Subject: Use cases. WebAssembly: what is it good for? Unordered and incomplete list of use cases for WebAssembly. --- UseCases.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 UseCases.md (limited to 'UseCases.md') diff --git a/UseCases.md b/UseCases.md new file mode 100644 index 0000000..23fa652 --- /dev/null +++ b/UseCases.md @@ -0,0 +1,51 @@ +# Use Cases + +WebAssembly's [high-level goals](HighLevelGoals.md) define *what* WebAssembly +aims to achieve, and in *which order*. *How* WebAssembly achieves its goals is +documented for [Web](Web.md) and [non-Web](NonWeb.md) platforms. The following +list of use cases is an unordered and incomplete list of what WebAssembly's +designers think WebAssembly will *enable*. + +## Inside the browser + +* Common NPAPI users, within the web’s security model. +* Better execution for languages that are currently cross-compiled (GWT, Dart, + C/C++). +* Image / video editing. +* Games: + - Casual games that need to start quickly. + - AAA games that have heavy assets. + - Game portals (mixed-party/origin content). +* Peer-to-peer applications (games, collaborative editing, decentralized and + centralized). +* Music applications (streaming, caching). +* Image recognition. +* Live video augmentation (e.g. putting hats on people's heads). +* VR and augmented reality (very low latency). +* CAD applications. +* Scientific visualization and simulation. +* Interactive educational software, and news articles. +* Platform simulation / emulation (ARC, DOSBox, QEMU, MAME, …). +* Language interpreters. +* Language virtual machines. +* Entire UNIX user-space environment, with existing UNIX applications. +* Developer tooling (editors, compilers, debuggers, …). +* Remote desktop. +* VPN. +* Encryption. +* Local web server. +* Fat client for enterprise applications (e.g. databases). + +# Outside the browser + +* Game distribution service (portable and secure). +* Server-side compute of untrusted code. +* Server-side application. +* Hybrid native apps on mobile devices. + +# How WebAssembly can be used + +* Entire code base in Web Assembly. +* Main frame in Web Assembly, but the UI is in JavaScript / HTML. +* Re-use existing code by targeting Web Assembly, embedded in a larger + JavaScript / HTML application. -- cgit v1.2.3 From 8efa809874ec4edb7b47683f73931578056f38f1 Mon Sep 17 00:00:00 2001 From: JF Bastien Date: Wed, 10 Jun 2015 16:52:02 +0200 Subject: Intrp & VM. --- UseCases.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'UseCases.md') diff --git a/UseCases.md b/UseCases.md index 23fa652..f742665 100644 --- a/UseCases.md +++ b/UseCases.md @@ -26,8 +26,7 @@ designers think WebAssembly will *enable*. * Scientific visualization and simulation. * Interactive educational software, and news articles. * Platform simulation / emulation (ARC, DOSBox, QEMU, MAME, …). -* Language interpreters. -* Language virtual machines. +* Language interpreters and virtual machines. * Entire UNIX user-space environment, with existing UNIX applications. * Developer tooling (editors, compilers, debuggers, …). * Remote desktop. -- cgit v1.2.3 From 1b9845738c87e9ff74126c5396326520ef5c492d Mon Sep 17 00:00:00 2001 From: JF Bastien Date: Wed, 10 Jun 2015 16:53:30 +0200 Subject: NPAPI: only for web APIs. --- UseCases.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'UseCases.md') diff --git a/UseCases.md b/UseCases.md index f742665..215bfab 100644 --- a/UseCases.md +++ b/UseCases.md @@ -8,7 +8,7 @@ designers think WebAssembly will *enable*. ## Inside the browser -* Common NPAPI users, within the web’s security model. +* Common NPAPI users, within the web's security model and APIs. * Better execution for languages that are currently cross-compiled (GWT, Dart, C/C++). * Image / video editing. @@ -26,7 +26,7 @@ designers think WebAssembly will *enable*. * Scientific visualization and simulation. * Interactive educational software, and news articles. * Platform simulation / emulation (ARC, DOSBox, QEMU, MAME, …). -* Language interpreters and virtual machines. +* Language interpreters virtual machines. * Entire UNIX user-space environment, with existing UNIX applications. * Developer tooling (editors, compilers, debuggers, …). * Remote desktop. -- cgit v1.2.3 From 15b3a944bbb85119d62feac5482bca1f0779757d Mon Sep 17 00:00:00 2001 From: JF Bastien Date: Wed, 10 Jun 2015 17:18:28 +0200 Subject: Move NPAPI. --- UseCases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'UseCases.md') diff --git a/UseCases.md b/UseCases.md index 215bfab..04a04b0 100644 --- a/UseCases.md +++ b/UseCases.md @@ -8,7 +8,6 @@ designers think WebAssembly will *enable*. ## Inside the browser -* Common NPAPI users, within the web's security model and APIs. * Better execution for languages that are currently cross-compiled (GWT, Dart, C/C++). * Image / video editing. @@ -33,6 +32,7 @@ designers think WebAssembly will *enable*. * VPN. * Encryption. * Local web server. +* Common NPAPI users, within the web's security model and APIs. * Fat client for enterprise applications (e.g. databases). # Outside the browser -- cgit v1.2.3 From b21682d6b49c4866010ccb5d3b01bbec8aef6425 Mon Sep 17 00:00:00 2001 From: JF Bastien Date: Thu, 11 Jun 2015 09:36:57 +0200 Subject: C/C++ first. Drop Dart. Ellipsis. --- UseCases.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'UseCases.md') diff --git a/UseCases.md b/UseCases.md index 04a04b0..18bad7e 100644 --- a/UseCases.md +++ b/UseCases.md @@ -8,8 +8,8 @@ designers think WebAssembly will *enable*. ## Inside the browser -* Better execution for languages that are currently cross-compiled (GWT, Dart, - C/C++). +* Better execution for languages that are currently cross-compiled to the Web + (C/C++, GWT, …). * Image / video editing. * Games: - Casual games that need to start quickly. -- cgit v1.2.3 From 9d8df3fd18bc68db8aad6f4bf3e24ebc772a01f9 Mon Sep 17 00:00:00 2001 From: JF Bastien Date: Thu, 11 Jun 2015 09:43:42 +0200 Subject: Clarify code reuse. --- UseCases.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'UseCases.md') diff --git a/UseCases.md b/UseCases.md index 18bad7e..5689f7d 100644 --- a/UseCases.md +++ b/UseCases.md @@ -47,4 +47,5 @@ designers think WebAssembly will *enable*. * Entire code base in Web Assembly. * Main frame in Web Assembly, but the UI is in JavaScript / HTML. * Re-use existing code by targeting Web Assembly, embedded in a larger - JavaScript / HTML application. + JavaScript / HTML application. This could be anything from simple helper + libraries, to compute-oriented task offload. -- cgit v1.2.3 From 9d4c71886ff6946be202e17873329aca1e62e6b5 Mon Sep 17 00:00:00 2001 From: JF Bastien Date: Thu, 11 Jun 2015 17:24:15 +0200 Subject: Drop enable. --- UseCases.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'UseCases.md') diff --git a/UseCases.md b/UseCases.md index 5689f7d..58a13de 100644 --- a/UseCases.md +++ b/UseCases.md @@ -3,8 +3,9 @@ WebAssembly's [high-level goals](HighLevelGoals.md) define *what* WebAssembly aims to achieve, and in *which order*. *How* WebAssembly achieves its goals is documented for [Web](Web.md) and [non-Web](NonWeb.md) platforms. The following -list of use cases is an unordered and incomplete list of what WebAssembly's -designers think WebAssembly will *enable*. +is an unordered and incomplete list of applications/domains/computations that +would benefit from WebAssembly and are being considered as use cases during the +design of WebAssembly. ## Inside the browser -- cgit v1.2.3 From 34318807a17cb43d79e8cf5939319e5b4909dc6d Mon Sep 17 00:00:00 2001 From: JF Bastien Date: Thu, 11 Jun 2015 17:25:20 +0200 Subject: Toolkits. --- UseCases.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'UseCases.md') diff --git a/UseCases.md b/UseCases.md index 58a13de..eb8d34e 100644 --- a/UseCases.md +++ b/UseCases.md @@ -9,8 +9,8 @@ design of WebAssembly. ## Inside the browser -* Better execution for languages that are currently cross-compiled to the Web - (C/C++, GWT, …). +* Better execution for languages and toolkits that are currently cross-compiled + to the Web (C/C++, GWT, …). * Image / video editing. * Games: - Casual games that need to start quickly. -- cgit v1.2.3 From abe174981643df3b0f37d625425e5706e6302708 Mon Sep 17 00:00:00 2001 From: JF Bastien Date: Thu, 11 Jun 2015 17:26:19 +0200 Subject: Missing 'and.' --- UseCases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'UseCases.md') diff --git a/UseCases.md b/UseCases.md index eb8d34e..e657403 100644 --- a/UseCases.md +++ b/UseCases.md @@ -26,7 +26,7 @@ design of WebAssembly. * Scientific visualization and simulation. * Interactive educational software, and news articles. * Platform simulation / emulation (ARC, DOSBox, QEMU, MAME, …). -* Language interpreters virtual machines. +* Language interpreters and virtual machines. * Entire UNIX user-space environment, with existing UNIX applications. * Developer tooling (editors, compilers, debuggers, …). * Remote desktop. -- cgit v1.2.3 From 36b59085649bf01b071064c977fc1a552f9149de Mon Sep 17 00:00:00 2001 From: JF Bastien Date: Thu, 11 Jun 2015 17:27:11 +0200 Subject: UNIX -> POSIX. --- UseCases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'UseCases.md') diff --git a/UseCases.md b/UseCases.md index e657403..405cafa 100644 --- a/UseCases.md +++ b/UseCases.md @@ -27,7 +27,7 @@ design of WebAssembly. * Interactive educational software, and news articles. * Platform simulation / emulation (ARC, DOSBox, QEMU, MAME, …). * Language interpreters and virtual machines. -* Entire UNIX user-space environment, with existing UNIX applications. +* POSIX user-space environment, allowing porting of existing POSIX applications. * Developer tooling (editors, compilers, debuggers, …). * Remote desktop. * VPN. -- cgit v1.2.3