You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+38-3Lines changed: 38 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,7 +32,13 @@ Please have patience as we update those to `awsm`.
32
32
33
33
## Why aWsm?
34
34
35
-
Why would we implement a Wasm compiler and runtime?
35
+
We've investigated how aWsm changes serverless on the edge (see our [Sledge runtime](https://github.com/gwsystems/sledge-serverless-framework) for that), and reliability in embedded systems.
36
+
See the publications and videos:
37
+
38
+
-[*Sledge: a Serverless-first, Light-weight Wasm Runtime for the Edge*](https://www2.seas.gwu.edu/~gparmer/publications/middleware20sledge.pdf) at ACM Middleware, 2020 ([video](https://www.youtube.com/watch?v=dxsYAzVMxH8))
39
+
-[*eWASM: Practical Software Fault Isolation for Reliable Embedded Devices*](https://www2.seas.gwu.edu/~gparmer/publications/emsoft20wasm.pdf) at EMSOFT, 2020 ([video](https://www.youtube.com/watch?v=x5j4AuwZbYE))
40
+
41
+
Why does aWsm enable these cool domains?
36
42
The Web Assembly eco-system is still developing, and we see the need for a system focusing on:
37
43
38
44
-*Performance.*
@@ -51,8 +57,37 @@ The Web Assembly eco-system is still developing, and we see the need for a syste
51
57
This enables the trivial composition of sandboxes together, and sandboxes into larger programs.
52
58
53
59
We believe that aWsm is one of the best options for ahead-of-time compilation for Wasm execution outside of the browser.
54
-
55
-
If you want to learn more about aWsm, see the [design](doc/design.md), or the [publication](https://www2.seas.gwu.edu/~gparmer/publications/emsoft20wasm.pdf).
60
+
If you want to learn more about aWsm, see the [design](doc/design.md), or the publications listed above.
61
+
62
+
## Where does aWsm Help Out?
63
+
64
+
-**Edge** and **Serverless**:
65
+
aWsm enables small-footprint, efficient edge, serverless runtime that we call [sledge](https://github.com/gwsystems/sledge-serverless-framework/blob/master/README.md) (or ServerLess on the EDGE).
66
+
aWsm sandboxes don't take up many more resources than a native binary, and sledge can create sandboxes, thus edge functions, in around 50 microseconds.
67
+
This enables massive benefits on the latency-sensitive edge!
68
+
-**Embedded devices**:
69
+
aWsm is used in [eWasm](https://www2.seas.gwu.edu/~gparmer/publications/emsoft20wasm.pdf) to provide sandboxed isolation in small microcontrollers (~64-128KiB of SRAM!).
70
+
aWsm enables memory savings compared to other embedded techniques, and near-native C performance.
71
+
aWsm is used in [bento boxes](https://github.com/arm-software/bento-linker) that provide an abstraction for embedded processes.
72
+
They also have shown the huge [performance benefit of aWsm](https://github.com/arm-software/bento-linker#results).
73
+
-**Cloud**:
74
+
Similar to the serverless argument above, aWsm can provide additional security by sandboxing tenant computation.
75
+
aWsm makes it trivial to filter system calls and system requires in accordance with your security policies.
76
+
-**Desktop**:
77
+
Similarly, aWsm can provide increased security where necessary.
78
+
-**Embedding policy into frameworks**:
79
+
Lua is often used to embed policy into C++ game engines, and eBPF is used to embed logic into the Linux kernel.
80
+
Wasm can be targeted by many languages, making it an appealing target, and aWsm enables it to be efficiently embedded into the surrounding framework.
81
+
82
+
Where aWsm isn't *yet* a great fit:
83
+
84
+
- Browsers:
85
+
Browsers have their own Wasm engines that can't easily be replaced.
86
+
Until the browser makers are breaking down our door to get aWsm in their browser, you'll have to use their built-in engines.
87
+
- Wherever interpreters or Jit are required:
88
+
Some domains focus almost entirely on the delay from download to execution.
89
+
An AoT compiler is not a great fit for that domain due to the latency of compilation.
90
+
However, aWsm has been demonstrated to generate code that has exceptional performance, so we focus on domains that benefit from efficiency.
Copy file name to clipboardExpand all lines: doc/design.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,10 @@
2
2
3
3
Here we briefly discuss the design of aWsm.
4
4
The intent isn't to be exhaustive, rather to give you a high-level understanding of the system.
5
-
For the gory details, see the [publication](https://www2.seas.gwu.edu/~gparmer/publications/emsoft20wasm.pdf).
5
+
Some gory details can be found in:
6
+
7
+
-[*Sledge: a Serverless-first, Light-weight Wasm Runtime for the Edge*](https://www2.seas.gwu.edu/~gparmer/publications/middleware20sledge.pdf) at ACM Middleware, 2020
8
+
-[*eWASM: Practical Software Fault Isolation for Reliable Embedded Devices*](https://www2.seas.gwu.edu/~gparmer/publications/emsoft20wasm.pdf) at EMSOFT, 2020
0 commit comments