Zinnia is a runtime for Filecoin Station modules. It provides a sandboxed environment to execute untrusted code on consumer-grade computers.

Overview
Comments
  • cli: run JavaScript modules + provide `console` APIs

    cli: run JavaScript modules + provide `console` APIs

    Start the implementation of Zinnia CLI, using clap for argument parsing.

    Start the implementation of Zinnia Runtime, using deno_core as the JS/WASM engine.

    Leverage useful bits from deno_runtime, like adding colours to terminal output and console Web-platform APIs.

    As a general rule, I am trying to follow Deno as much as possible. Using the same conventions and coding style as they do, importing from their crates where possible and copying bits of code where it's difficult to import.

    See https://github.com/filecoin-station/zinnia/issues/5

    modules:javascript 
    opened by bajtos 0
  • Auto-generated API docs for Rust SDKs

    Auto-generated API docs for Rust SDKs

    When we add a new API to Zinnia, there should be an automated way how to update our Rust API docs from code comments.

    Maybe Crates.io already takes care of this?

    opened by bajtos 0
  • Auto-generated API docs for JavaScript SDKs

    Auto-generated API docs for JavaScript SDKs

    When we add a new API to Zinnia, there should be an automated way how to update our JS API docs from code comments in jsdoc/tsdoc style.

    Ideally, we should also provide TypeScript definition files describing our APIs, so that module authors can type-check their code.

    opened by bajtos 0
  • Ping module demo

    Ping module demo

    Once per minute, the ping module executes libp2p ping command against our dummy server deployed to [Fly.io](http://Fly.io) and reports the result (latency) to standard output. If the server cannot be reached, then an error is logged. Neither of these logs will show in the Station Activity Log.

    • [ ] Dummy server
    • [ ] JavaScript module
    • [ ] Rust module
    • [ ] Marketing - present the demo, post a YouTube video, announce in Slack, etc.
    opened by bajtos 0
  • libp2p node

    libp2p node

    • Built-in rs-libp2p node
    • WASM API for dialing a libp2p protocol (e.g. ping). If this is too difficult, then we can start with a single ping API that's calling into Rust ping implementation under the hood.
    • JavaScript and Rust/WASM.
    • Documentation for module authors.
    opened by bajtos 0
  • Testing modules

    Testing modules

    Create tooling for testing Zinnia modules in an automated way.

    • Unit-testing & integration testing.
    • Both JavaScript and Rust/WASM.
    • Documentation for module authors.
    opened by bajtos 2
WASM-compiled built-in actors used by all Filecoin clients

Built-in Filecoin actors (v8) This repo contains the code for the on-chain built-in actors that power the Filecoin network starting from network versi

Filecoin 45 Jan 4, 2023
Spine runtime for Rust (and wasm!) transpiled from the official C Runtime.

rusty_spine Spine runtime for Rust (and wasm!) transpiled from the official C Runtime. Supports Spine 4.1. [dependencies] rusty_spine = "0.4.0" Onlin

jabu 12 Dec 17, 2022
Rust bindings for writing safe and fast native Node.js modules.

Rust bindings for writing safe and fast native Node.js modules. Getting started Once you have the platform dependencies installed, getting started is

The Neon Project 7k Jan 4, 2023
Facilitating high-level interactions between Wasm modules and JavaScript

wasm-bindgen Facilitating high-level interactions between Wasm modules and JavaScript. Guide | API Docs | Contributing | Chat Built with ?? ?? by The

Rust and WebAssembly 5.9k Jan 8, 2023
A weekly dive into commonly used modules in the Rust ecosystem, with story flavor!

Rust Module of the Week A weekly dive into commonly used modules in the Rust ecosystem, with story flavor! Build status Release Draft The goal The goa

Scott Lyons 20 Aug 26, 2022
Rust Python modules for interacting with Metaplex's NFT standard.

Simple Metaplex Metadata Decoder Install the correct Python wheel for your Python version with pip: pip install metaplex_decoder-0.1.0-cp39-cp39-manyl

Samuel Vanderwaal 11 Mar 31, 2022
Instrument and transform wasm modules.

wasm-instrument A Rust library containing a collection of wasm module instrumentations and transformations mainly useful for wasm based block chains a

Parity Technologies 31 Dec 16, 2022
Objective-C Runtime bindings and wrapper for Rust.

Objective-C Runtime bindings and wrapper for Rust. Documentation: http://ssheldon.github.io/rust-objc/objc/ Crate: https://crates.io/crates/objc Messa

Steven Sheldon 336 Jan 2, 2023
The JavaScript runtime that aims for productivity and ease

Byte Byte is a easy and productive runtime for Javascript . It makes making complex programs simple and easy-to-scale with its large and fast Rust API

Byte 32 Jun 16, 2021
A JavaScript Runtime built with Mozilla's SpiderMonkey Engine and Rust

Spiderfire Spiderfire is a javascript runtime built with Mozilla's SpiderMonkey engine and Rust. Spiderfire aims to disrupt the server-side javascript

Redfire 122 Dec 15, 2022
Diamond is a minimalistic, powerful, and modern Javascript runtime that uses Deno_Core.

Diamond Diamond is a minimalistic, powerful, and modern Javascript runtime that uses Deno_Core. Installation Diamond is currently in beta(not even Alp

Catermelon 4 Aug 30, 2021
Modern JavaScript runtime for Sony PSP, based on rust-psp and QuickJS.

PSP.js Modern JavaScript runtime for Sony PSP, based on rust-psp and QuickJS. ⚠️ Currently in PoC state, unusable for developing JavaScript apps yet.

Yifeng Wang 15 Nov 28, 2022
A Lean Secure Runtime for JavaScript

Tera tera is a lean secure capability-based runtime for JavaScript. It is primarily designed for multi-tenant serverless environment but has uses in o

Gigamono 7 Oct 7, 2022
Minimal framework to inject the .NET Runtime into a process in Rust

錆の核 sabinokaku Minimal framework to inject the .NET Runtime into a process. Supports Windows and Linux. macOS support is complicated due to SIP, and w

Snowflake Emulator Frontend 8 Mar 6, 2022
Livny is a modern JavaScript and TypeScript runtime built on top of Rust

Livny is a modern JavaScript and TypeScript runtime built on top of Rust, Golang and the GraalVM Polyglot infrastructure that can run all of Deno and Node.jS applications. It is fine-tuned for user satisfaction, performance and security.

LivnyJS 1 Mar 2, 2022
An serverless framework based on wasm runtime.

wasm_serverless An distributed serverless framework based on wasm runtime. Feishu doc https://fvd360f8oos.feishu.cn/docx/XSxcdONk2oVJD5xtZuicxftqn3f?f

null 3 Nov 23, 2023
A project for generating C bindings from Rust code

cbindgen   Read the full user docs here! cbindgen creates C/C++11 headers for Rust libraries which expose a public C API. While you could do this by h

Ryan Hunt 1.7k Jan 3, 2023
Run Java code from Rust!

Java Native Interface Bindings for Rust This library provides complete FFI bindings to the Java Native Interface, as well as a safe and intuitive wrap

Ben Anderson 66 Nov 28, 2022
Guarding 是一个用于 Java、JavaScript、Rust、Golang 等语言的架构守护工具。借助于易于理解的 DSL,来编写守护规则。Guarding is a guardians for code, architecture, layered.

Guarding Guarding is a guardians for code, architecture, layered. Using git hooks and DSL for design guard rules. Usage install cargo install guarding

Inherd OS Team (硬核开源小组) 47 Dec 5, 2022