---
# System prepended metadata

title: Where should `wasi-cloud-core` implementations live?

---

# Where should `wasi-cloud-core` implementations live?

- With implementations other than SpiderLightning/`slight` of `wasi-cloud-core` starting to be created (e.g., `wasmtime`'s impl. of `wasi-http`, `spin`'s impl. of `wasi-http`, etc.), there's a need to figure out where these implementations should live to ease maintainability and avoid duplication of effort.

- For reference, here's the current `wasi-cloud-core` spec:
```
package wasi:cloud-core

world cloud-core {
    include wasi:keyvalue
    include wasi:blob-store
    include wasi:messaging
    include wasi:sql
    include wasi:runtime-config
    include wasi:distributed-locking
    include wasi:http
}
```

- While it might have made sense for some of these interfaces to have implementations in `wasmtime` directly (e.g., `wasi:http`), it might not make sense for all of them to live there – i.e., we probably don't want to add a myriad of dependencies onto `wasmtime` (i.e., cloud A's impl. of keyvalue, cloud B's impl. of keyvalue, etc.)).

- So, where should these implementations live? One idea that was thrown around was to create 'default implementation repos.' for each of the interfaces in the BCA org.. This would be helpful to provide a reference implementation of a service to other interested implementors, but, at the same time, it could be hard to determine what the 'default' implementation should be for each interface.