Skip to content

A wasi-cloud-core World proposal #520

Closed
@Mossaka

Description

@Mossaka

This follows the footstep of #509 and a few discussions in WASI subgroup meetings, we want to create a World for all the wasi-cloud proposals and name it as wasi-cloud-core. This includes

Currently, progress on the above proposals varies in terms of completeness. The proposal specifications for wasi-keyvalue, wasi-messaging, wasi-http, wasi-sql, and wasi-blob-store are more fully formed. In these proposals, some of them are not updated with the WASI preview 2 syntax. By the end of Spring, we plan to add basic proposal specifications for the remaining wasi-cloud proposals and make sure all of the proposal specifications are aligned with the WASI preview 2 syntax. In addition, we want to validate all the WIT files using automated CIs and wasm-tools, and document any breaks and changes to the specifciation in a change log.

To elaborate on aligning the syntax of WIT with that of WASI preview 2, we want to use pseudo-stream/future/resource types, and to continue to align with future versions of WASI, as described in #515.

Each of these proposals have its own proposed WIT interfaces and worlds, but we raise this issue to propose a wasi-cloud-core World that has a similar structure to the following:

default world wasi-cloud-core {
  import wasi-keyvalue: wasi-keyvalue
  import wasi-blob-store: wasi-blob-store
  import wasi-sql: wasi-sql
  import wasi-messaging: wasi-messaging
  import wasi-runtime-config: wasi-runtime-config
  import wasi-distributed-locking: wasi-distributed-lock-service
  import default-upstream-HTTP: wasi-http.outgoing-handler
 
  export HTTP: wasi-http.incoming-handler
}

This is just a sketch of the proposed world, and much remains unknown to what it means to import a wasi-keyvalue world inside of another world, as imports and exports of a World only allow WIT interfaces. We will also explore the uses of WIT templates in each proposal to help us move runtime implementation to static time implementations.

A note on wasi-cloud-core overall scope

It is not meant to cover 100% of the features that distribtued application expecs, but it focuses on the 80% of the problem space with the assumption that most apps will fall into this scope. The API designs for these wasi-cloud proposals aggregate the common features across multiple providers. An example would be that wasi-keyvalue provides readwrite APIs which is the lowerest common dominator in all systems and is designed for rapid development expeirence.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions