<style>
.reveal {
font-size: 32px;
}
</style>
![](https://hackmd.io/_uploads/Skguz-965.png)
------
### Composable WebAssembly<br/>*Made Easy*
---
![](https://hackmd.io/_uploads/HkBurbqp5.png)
[polywrap.io](https://polywrap.io)
---
## Prior Knowledge
- Software Development
- WebAssembly (Wasm)
- IPFS & IPLD
---
<img src="https://hackmd.io/_uploads/HJ95Gbc6c.png" width="250" height="250" />
## Goals
- Understand Polywrap
- Envision Use-Cases
- Learn How To Get Started
---
## Structure
1. What is Polywrap?
3. Broader Ecosystem Fit
4. Example Use-Case
5. Project Maturity
6. Polywrap + IPFS = :heart:?
7. WRAP + IPLD = :heart:?
8. Start Building Today
---
# What is Polywrap?
-----
### WebAssembly Development Framework
Composability + On-Demand Execution
---
# Motivation
## "Trad Modules"
### *are holding software back*
Language Specific<br/>Insecure<br/>Not Standardized<br/>Not Upgradeable<br/>Bloat Apps
---
# Web3 Integration Problem
Web3 needs many modules for complex client-side logic.
<img src="https://hackmd.io/_uploads/Syiyvfcpc.png" height="400" />
---
# Polywrap Modules
## aka *Wrappers*
Multi-Language<br/>Secure By Default<br/>Composable<br/>Upgradeable<br/>Scalable
---
# Multi-Language
<img src="https://hackmd.io/_uploads/B12VPf969.png" height="400" />
---
# Secure By Default
<img src="https://hackmd.io/_uploads/rydOvfq65.png" height="400" />
---
# Secure++
## Capability Based Security
<img src="https://hackmd.io/_uploads/HkbPEfcac.png" height="400" />
source: [bytecodealliance.org/articles/...](https://bytecodealliance.org/articles/announcing-the-bytecode-alliance)
---
# Composable
<img src="https://hackmd.io/_uploads/BJO6Df9aq.png" height="400" />
---
# Upgradeable
<img src="https://hackmd.io/_uploads/H15EFz969.png" height="500" />
---
# Scalable
<img src="https://hackmd.io/_uploads/H1Z6Kfq65.png" height="500" />
---
# Development Experience
![](https://hackmd.io/_uploads/HymQjM9Tq.png)
---
# An Internet OS
# *For In-App Modules*
<img src="https://hackmd.io/_uploads/BJdf6f5p5.png" height="300" />
https://en.wikipedia.org/wiki/Internet_OS
---
# How We Build
1. Focus on developer experience
2. Build extendable systems
3. Standardize (alongside adjacent technologies)
---
# Underlying Standard
## W.R.A.P.
WRAP stands for **W**ebAssembly **R**andom **A**ccess **P**rotocol.
**WebAssembly** - A secure-by-default, portable, lightweight, bytecode standard.
**Random Access** - Any WRAP module is accessible on-demand via its URI.
**Protocol** - A set of rules and procedures for loading & executing WRAP modules.
[specification (WIP)](https://github.com/polywrap/specification/blob/main/standard/01.0%20General%20Standard/WRAP%20Standard.md)
---
## Feels Like Magic
```typescript!
client.invoke({
uri: "ens/domain.eth/package/1.0.0",
method: "someMethod",
args: {
value: 5,
arr: ["foo", "bar"],
obj: {
prop: false
}
}
})
```
[docs.polywrap.io](https://docs.polywrap.io)
---
# Broader Ecosystem Fit
-----
Where does WRAP & Polywrap fit into the broader Wasm ecosystem?
| Standards | Runtime |
|-|-|
| WRAP, Wasi | Polwrap Client |
| Wasm | WebAssembly VM |
---
# What are some example use-cases of Polywrap?
-----
- Universal SDKs
- Upgradeable SDKs
- Standard Interfaces
- Future-Proof Aggregators
- Serverless Function Runtime
- Hybrid Compute (Server + Client)
- Web3 Node Runtimes
---
# Disclaimer
Some use-cases are more feasible today than others.
---
# Project Maturity
-----
The project is still relatively "young". We're building rapidly, and growing steadily both internally within the DAO and externally as an ecosystem.
---
# 1.5 Years Building
![](https://acegif.com/wp-content/uploads/cat-typing-12.gif)
---
<img src="https://user-images.githubusercontent.com/5522128/177474776-76886b67-6554-41a9-841b-939728e273ca.png" height="500" />
---
<img src="https://hackmd.io/_uploads/Sk74V7qp9.png" height="500" />
---
<img src="https://hackmd.io/_uploads/HyW84X965.png" height="500" />
---
# DeFi Wrapper
## Future-Proof Aggregator
<img src="https://hackmd.io/_uploads/By_o4Qcp9.png" height="500" />
---
# wrap.link
## Serverless Wrapper Runtime
https://wrap.link/i/ens/http.polywrap.eth/get?url=https://www.google.com
---
# DAO Coordination
## Contributors
![](https://hackmd.io/_uploads/HJ2Tc7565.png)
---
# Polywrap + IPFS = :heart:?
---
# Fetch & Run Wasm<br/>From IPFS
<img src="https://hackmd.io/_uploads/Sy_vjE9ac.png" height="500" />
---
# Fetch & Run Wasm<br/>From IPFS
```typescript!
client.invoke({
uri: "ipfs/QmHASH",
method: "someMethod",
args: {
...
}
})
```
---
# Multi-Language IPFS SDK
```typescript!
const result = await client.invoke({
uri: "ens/wrappers.polywrap.eth/ipfs-http-client",
method: "catFile",
args: {
cid: "ipfs/QmHash"
}
})
const bytes = result.data;
```
---
# Run Wasm in IPFS Nodes
* Increase Security
* Node Runner Extensions
* User Defined Extensions
* Data Transformations
---
# WRAP + IPLD = :heart:?
---
# Wasm Module Verification
Verify the module's authenticity by doing client-side hash verification.
---
# Improved Performance
* Reduce Invocation Redundancy
* Performant Data Translations
* Improved Module Dependencies
---
# Polywarp DAO's Sentiment
* We actively build with IPFS in mind
* Contributors are IPFS fluent
* Very interested in IPLD + WRAP integrations
---
# Start Building Today
-----
- Where to get started?
- [docs.polywrap.io](https://docs.polywrap.io/)
- Existing integrations?
- [integrations.polywrap.io](https://integrations.polywrap.io/)
- Existing demos?
- [demos.polywrap.io](https://demos.polywrap.io/)
- Join the developer community.
- [discord.polywrap.io](https://discord.polywrap.io)
- Ask us questions! We will respond.
---
# Happy Hacking!
{"metaMigratedAt":"2023-06-17T06:15:30.507Z","metaMigratedFrom":"YAML","title":"What is Polywrap?","breaks":"true","slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"c625e241-d8ed-4330-897a-bc5e11cf7652\",\"add\":0,\"del\":9},{\"id\":\"cdbb350a-2765-454e-8d01-cec2bcf476f3\",\"add\":10272,\"del\":4328}]"}