Toolchain: Updated Monorepo Folder Structure

Currently, the folder structure within the monorepo does not scale well:

This became clear when implementing support for a new wasm wrapper implementation language, Rust. Let’s discuss below how to better organizing the monorepo’s folder structure.

1 Like

Here is my first attempt:

polywrap-clients/
  js/
    core/
      package.json
    client/
      package.json
  rust/
    core/
      cargo.toml
    client/
      cargo.toml

polywrap-toolchain/
  cli-v1/
    package.json
  cli-v2/
    cargo.toml

polywrap-plugins/
  filesystem/
    interface/
      polywrap.interface.yaml
    js/
      package.json
    rust/
      cargo.toml
    python/
      requirements.txt
  http/
    interface/
      polywrap.interface.yaml
    js/
    ...

wrap-schema/
  parse/
    polywrap.yaml
  link/
    polywrap.yaml
  bind/
    polywrap.yaml

wrap-runtimes/
  assemblyscript/
    runtime/
      package.json
    schema-bind/
      polywrap.yaml
  rust/
    runtime/
      cargo.toml
    schema-bind/
      polywrap.yaml

wrap-manifests/
  polywrap/
    0.0.1.json
    0.0.2.json
    0.1.0.json
  polywrap.build/
    0.0.1.json
    ...

NOTE: parts of this do not match up with our “current reality”, but instead tries to envision an ideal future state.