mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-10-23 09:21:44 +00:00
doc/socket_api.md: some historical notes (#4494)
This commit is contained in:
parent
704aa3e7e5
commit
34f5d13444
|
@ -87,3 +87,38 @@ $ iwasm --addr-pool=1.2.3.4/15,2.3.4.6/16 socket_example.wasm
|
||||||
```
|
```
|
||||||
|
|
||||||
Refer to [socket api sample](../samples/socket-api) for the compilation of the Wasm applications and [_iwasm_ for Intel SGX](../product-mini/platforms/linux-sgx) for the Wasm runtime.
|
Refer to [socket api sample](../samples/socket-api) for the compilation of the Wasm applications and [_iwasm_ for Intel SGX](../product-mini/platforms/linux-sgx) for the Wasm runtime.
|
||||||
|
|
||||||
|
## The background and compatibility notes
|
||||||
|
|
||||||
|
### WASIp1
|
||||||
|
|
||||||
|
The WASIp1 provides a subset of the socket API.
|
||||||
|
Namely,
|
||||||
|
|
||||||
|
* send()
|
||||||
|
* recv()
|
||||||
|
* shutdown()
|
||||||
|
* accept()
|
||||||
|
|
||||||
|
Functionalities like connect() and listen() are intentionally omitted
|
||||||
|
there to maintain the capability-based security model, inherited from
|
||||||
|
cloudabi. The common practice for applications is to make the host code
|
||||||
|
pass already connected/listening sockets to wasm module.
|
||||||
|
|
||||||
|
### WAMR extensions
|
||||||
|
|
||||||
|
WAMR extends the WASIp1 with the rest of socket API functionalities
|
||||||
|
for convenience.
|
||||||
|
|
||||||
|
* socket()
|
||||||
|
* connect()
|
||||||
|
* bind()
|
||||||
|
* listen()
|
||||||
|
* some of getsockopt/setsockopt options
|
||||||
|
* name resolution (a subset of getaddrinfo)
|
||||||
|
|
||||||
|
### Compatibilities
|
||||||
|
|
||||||
|
Many of runtimes (eg. Wasmer and WasmEdge) provide similar extensions.
|
||||||
|
Unfortunately, they are all incompatible. Thus, portable applications
|
||||||
|
should not rely on these extensions.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user