# vasm

> Vue.js based progressive framework built on webassembly

Latest version **1.0.0** (published 2021-09-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install vasm
pnpm add vasm
yarn add vasm
bun add vasm
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2021-09-07 |
| First published | 2021-09-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 1.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Daan Penning |
| Maintainers | daanpenning |
| Keywords | framework, webassembly, wasm |

## Links

- npm: https://www.npmjs.com/package/vasm
- Repository: https://github.com/vasm-ts/vasm
- Homepage: https://github.com/vasm-ts/vasm#readme
- Issues: https://github.com/vasm-ts/vasm/issues
- npm.io page: https://npm.io/package/vasm

## Alternatives

- [@sveltejs/kit](https://npm.io/package/@sveltejs/kit.md) — 2.2M weekly downloads
- [@atlaskit/theme](https://npm.io/package/@atlaskit/theme.md) — 402.0K weekly downloads
- [@tangle-network/brand](https://npm.io/package/@tangle-network/brand.md) — 10.0K weekly downloads
- [seneca](https://npm.io/package/seneca.md) — 7.4K weekly downloads
- [@bsb/base](https://npm.io/package/@bsb/base.md) — 7.2K weekly downloads

## Recent versions

- 1.0.0 (latest) — 2021-09-07

## README

<div align="center">
    <a href="#"><img src="https://i.imgur.com/qj3xIJB.png" width="20%"/></a>
    <h1>vasm.ts</h1>
    <i>Vue.js based framework build on the power of AssemblyScript</i>
</div>

---


## Why Vasm?
Vasm takes everything great about Vue and takes it to the WebAssembly realm. Using AssemblyScript, components/state/pages can be written to be high performing while being written in a language that is familiar to JavaScript developers. Furthermore, external Vue.js components can be hooked into Vasm, opening up the enormous Vue ecosystem to the power of WebAssembly.

## Example
Vasm is similair to Vue.js in syntax (Although due to its low level, certain aspects require extra steps). Example of a simple button counter.

```ts
import { Vasm } from 'vasm';
import { Map } from 'map';

Vasm.Component("App", Vasm.Options()
    .template(`
        <div>
            <button :click="counter:i32++">
                Clicked the button {{ counter }} times.
            </button>
        </div>
    `)
    .data( (instance: Pointer<Instance>, data: Pointer<Data>) : void => {

        // The data object is passed as a pointer.
        of(data).set("counter", 0);

    })
);
```

---
_Source: https://npm.io/package/vasm · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
