Project Architecture
The wasmer-pack
project is split across several crates depending on the various
ways it might be used.
The main crates are:
crates/wasmer-pack
- this is the meat and potatoes ofwasmer-pack
. It contains all the code for generating bindings to WebAssembly modules, plus templates for any glue code that will be needed along the waycrates/cli
- this is a CLI tool that letswasmer-pack
generate bindings using the commands and libraries inside a Pirita filecrates/wasm
- this is a wrapper that makeswasmer-pack
available as a WebAssembly module. The functions and data types that are exposed are defined incrates/wasm/wasmer-pack.exports.wai
(seeWIT.md
for the syntax)
Architecture Decision Records
An architectural decision record (ADR) is a document that describes a choice the team makes about a significant aspect of the software architecture they’re planning to build. Each ADR describes the architectural decision, its context, and its consequences.
The goal is to get knowledge about a decision out of a developer's head so it doesn't get lost to time.
ADRs aren't big documents - if you are writing more than a couple paragraphs, you are probably doing it wrong!
(click to see the template)
# (short title of solved problem and solution)
| Metadata | Value |
| -------- | ----------------------------------------------------------------------------------- |
| Status | *proposed, rejected, accepted, deprecated, superseded by [ADR-123](123-example.md)* |
## Context and Problem Statement
*(Describe the context and problem statement, e.g., in free form using two to three sentences. You may want to articulate the problem in form of a question.)*
## Decision Drivers <!-- optional -->
1. *(driver 1, e.g., a force, facing concern, …)*
2. … <!-- numbers of drivers can vary -->
## Considered Options
1. option 1
2. option 2
4. … <!-- numbers of options can vary -->
## Decision Outcome
Chosen option: "option 1", because (justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force force | … | comes out best).
### Positive Consequences <!-- optional -->
- (e.g., improvement of quality attribute satisfaction, follow-up decisions required, …)
- …
### Negative Consequences <!-- optional -->
- (e.g., compromising quality attribute, follow-up decisions required, …)
- …
## Pros and Cons of the Options <!-- optional -->
### option 1
*(example | description | pointer to more information | …)* <!-- optional -->
- Good, because X
- Good, because Y
- Bad, because Z
- … <!-- numbers of pros and cons can vary -->
## Links <!-- optional -->
- []()