Skip to content

Commit 20802bf

Browse files
committed
updated documentation
1 parent c3921df commit 20802bf

File tree

2 files changed

+42
-4
lines changed

2 files changed

+42
-4
lines changed

README.md

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,13 @@ Please have patience as we update those to `awsm`.
3232

3333
## Why aWsm?
3434

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?
3642
The Web Assembly eco-system is still developing, and we see the need for a system focusing on:
3743

3844
- *Performance.*
@@ -51,8 +57,37 @@ The Web Assembly eco-system is still developing, and we see the need for a syste
5157
This enables the trivial composition of sandboxes together, and sandboxes into larger programs.
5258

5359
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.
5691

5792
# Performance
5893

doc/design.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
Here we briefly discuss the design of aWsm.
44
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
69

710
# Background: Wasm Sandbox
811

0 commit comments

Comments
 (0)