Skip to content

Add a WASI design principles document.#192

Merged
sunfishcode merged 12 commits into
WebAssembly:masterfrom
sunfishcode:design-principles
Feb 19, 2020
Merged

Add a WASI design principles document.#192
sunfishcode merged 12 commits into
WebAssembly:masterfrom
sunfishcode:design-principles

Conversation

@sunfishcode
Copy link
Copy Markdown
Member

@sunfishcode sunfishcode commented Jan 6, 2020

As part of a larger effort to answer questions about what capability-based design means, whether WASI is intending to be POSIX-oriented, and other things, here's a draft of a design principles document.

This also includes a section on virtualization, which takes some ideas from #69, but modifies it to focus on using interface types and the linking proposal to implement virtualization.

Feedback is welcome!

Edit: Click here to read as rendered html

Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/WASI-design-principles.md Outdated
Comment thread docs/DesignPrinciples.md Outdated
Fix spelling of "trade-off"

Co-Authored-By: Ben B. <benne@klimlive.de>
@sunfishcode
Copy link
Copy Markdown
Member Author

Thanks to everyone who reviewed this! I've addressed all the feedback, and there were no major objections, so I'll proceed to merge this. Feedback is still welcome; please file issues to ask questions or make comments, or even feel free to submit PRs to suggest changes.

@sunfishcode sunfishcode merged commit 694e085 into WebAssembly:master Feb 19, 2020
@sunfishcode sunfishcode deleted the design-principles branch February 19, 2020 18:40
yoshuawuyts pushed a commit to yoshuawuyts/WASI that referenced this pull request Nov 25, 2025
* Add a WASI design principles document.

This spells out WASI's design principles around capabilities,
relationship to POSIX, and other topics.

This also includes a section on virtualization, which takes some ideas
from WebAssembly#69, but modifies it to focus on using interface types and the
linking proposal to implement virtualization.

* Fix the links to the type imports proposal.

* Fix "wowever" typo.

* Elaborate on what WASI does instead of shared filesystem views.

* Linkify "weak imports".

* Rename WASI-design-principles.md to DesignPrinciples.md

* Wrap lines to 72 columns.

* Remove a redundant "always".

* Say "interposition" instead of "virtualization".

* Add some text to clarify that shared-nothing linking will require porting.

* Reword the paragraph explaining how forgeable indices doesn't mean forgeable capabilities.

* Update docs/DesignPrinciples.md

Fix spelling of "trade-off"

Co-Authored-By: Ben B. <benne@klimlive.de>

Co-authored-by: Ben B. <benne@klimlive.de>
yoshuawuyts pushed a commit to yoshuawuyts/WASI that referenced this pull request Nov 25, 2025
* Add a WASI design principles document.

This spells out WASI's design principles around capabilities,
relationship to POSIX, and other topics.

This also includes a section on virtualization, which takes some ideas
from WebAssembly#69, but modifies it to focus on using interface types and the
linking proposal to implement virtualization.

* Fix the links to the type imports proposal.

* Fix "wowever" typo.

* Elaborate on what WASI does instead of shared filesystem views.

* Linkify "weak imports".

* Rename WASI-design-principles.md to DesignPrinciples.md

* Wrap lines to 72 columns.

* Remove a redundant "always".

* Say "interposition" instead of "virtualization".

* Add some text to clarify that shared-nothing linking will require porting.

* Reword the paragraph explaining how forgeable indices doesn't mean forgeable capabilities.

* Update docs/DesignPrinciples.md

Fix spelling of "trade-off"

Co-Authored-By: Ben B. <benne@klimlive.de>

Co-authored-by: Ben B. <benne@klimlive.de>
yoshuawuyts added a commit to yoshuawuyts/WASI that referenced this pull request Nov 25, 2025
…rc-2025-09-16

Update 0.3.0 WIT definitions to 0.3.0-rc-2025-09-16
yoshuawuyts pushed a commit to yoshuawuyts/WASI that referenced this pull request Nov 25, 2025
* Add a WASI design principles document.

This spells out WASI's design principles around capabilities,
relationship to POSIX, and other topics.

This also includes a section on virtualization, which takes some ideas
from WebAssembly#69, but modifies it to focus on using interface types and the
linking proposal to implement virtualization.

* Fix the links to the type imports proposal.

* Fix "wowever" typo.

* Elaborate on what WASI does instead of shared filesystem views.

* Linkify "weak imports".

* Rename WASI-design-principles.md to DesignPrinciples.md

* Wrap lines to 72 columns.

* Remove a redundant "always".

* Say "interposition" instead of "virtualization".

* Add some text to clarify that shared-nothing linking will require porting.

* Reword the paragraph explaining how forgeable indices doesn't mean forgeable capabilities.

* Update docs/DesignPrinciples.md

Fix spelling of "trade-off"

Co-Authored-By: Ben B. <benne@klimlive.de>

Co-authored-by: Ben B. <benne@klimlive.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants