🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@karust13/as-proto

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@karust13/as-proto - npm Package Compare versions

Comparing version
1.4.1
to
1.4.2
+1
-1
package.json
{
"name": "@karust13/as-proto",
"version": "1.4.1",
"version": "1.4.2",
"description": "AssemblyScript runtime library for protobuf encoding/decoding",

@@ -5,0 +5,0 @@ "main": "assembly/index.ts",

+26
-17

@@ -9,3 +9,3 @@ <div align="center">

[![npm](https://img.shields.io/npm/v/as-proto)](https://www.npmjs.com/package/as-proto)
[![npm](https://img.shields.io/npm/v/@karust13/as-proto)](https://www.npmjs.com/package/@karust13/as-proto)

@@ -15,8 +15,10 @@ </div>

## Features
* Encodes and decodes protobuf messages
* Generates AssemblyScript files using `protoc` plugin
* Produces relatively small `.wasm` files
* Relatively fast, especially for messages that contains only primitive types
- Encodes and decodes protobuf messages
- Generates AssemblyScript files using `protoc` plugin
- Produces relatively small `.wasm` files
- Relatively fast, especially for messages that contains only primitive types
## Installation
This package requires **Node 10.4+** or modern browser with [WebAssembly][1] support.

@@ -36,6 +38,9 @@ Requires [`protoc`][2] installed for code generation.

## Code generation
To generate AssemblyScript file from `.proto` file, use following command:
```sh
protoc --plugin=protoc-gen-as=./node_modules/.bin/as-proto-gen --as_out=. ./file.proto
```
This command will create `./file.ts` file from `./file.proto` file.

@@ -55,2 +60,3 @@

```
```typescript

@@ -112,3 +118,5 @@ // star-repo-message.ts

### Helper methods
In order to generate helper methods for encoding and decoding a message, pass the `gen-helper-methods` option with the `as_opt` parameter:
```sh

@@ -119,2 +127,3 @@ protoc --plugin=protoc-gen-as=./node_modules/.bin/as-proto-gen --as_opt=gen-helper-methods --as_out=. ./file.proto

This will add the following methods in a generated file:
```typescript

@@ -131,6 +140,8 @@ export function encodeStarRepoMessage(message: StarRepoMessage): Uint8Array {

### Dependencies
This package will generate messages for all proto dependencies (for example `import "google/protobuf/timestamp.proto";`)
This package will generate messages for all proto dependencies (for example `import "google/protobuf/timestamp.proto";`)
unless you pass `--as_opt=no-gen-dependencies` option.
## Usage
To encode and decode protobuf messages, all you need is `Protobuf` class and

@@ -140,6 +151,6 @@ generated message class:

```typescript
import { Protobuf } from 'as-proto/assembly';
import { StarRepoMessage } from './star-repo-message'; // generated file
import { Protobuf } from "as-proto/assembly";
import { StarRepoMessage } from "./star-repo-message"; // generated file
const message = new StarRepoMessage('piotr-oles', 'as-proto');
const message = new StarRepoMessage("piotr-oles", "as-proto");

@@ -153,4 +164,4 @@ // encode

assert(decoded instanceof StarRepoMessage);
assert(decoded.author === 'piotr-oles');
assert(decoded.repo === 'as-proto');
assert(decoded.author === "piotr-oles");
assert(decoded.repo === "as-proto");
```

@@ -161,9 +172,5 @@

```typescript
import {
StarRepoMessage,
encodeStarRepoMessage,
decodeStarRepoMessage
} from './star-repo-message'; // generated file
import { StarRepoMessage, encodeStarRepoMessage, decodeStarRepoMessage } from "./star-repo-message"; // generated file
const message = new StarRepoMessage('piotr-oles', 'as-proto');
const message = new StarRepoMessage("piotr-oles", "as-proto");

@@ -177,2 +184,3 @@ const encoded = encodeStarRepoMessage(message);

## Performance
I used performance benchmark from [`ts-proto`][3] library and added case for `as-proto`.

@@ -236,2 +244,3 @@ The results on Intel Core i7 2.2 Ghz (MacBook Pro 2015):

## License
MIT

@@ -238,0 +247,0 @@