Rust-generated WebAssembly GitHub action template

A template to bootstrap the creation of a Rust-generated WebAssembly GitHub action

.

About

This project is experimental. While it is very much feasible to write a GitHub action in Rust-generated WebAssembly, as this project demonstrates, there are some challenges compared to Javascript/Typescript.

The following is a summary of pain points I discovered, and some caveats when using the template.

  • It relies on raw bindings to the official actions toolkit NPM packages. Bindings for this template are defined in actions-toolkit-bindings but they are incomplete. I've only defined bindings that are in use by the template. It would be great to have a well maintained set of bindings published as a crate.

  • WebAssembly runs in a safe, sandboxed execution environment. As a result there is no access to files on disks, environment variables, etc. This means bindings to Javascript functions are necessary for some functionality.

  • Panics cause the action to fail on exit but could be handled a little better. Perhaps we need a hook similar to the console_error_panic_hook that calls the binding for the setFailed function in @actions/core.

  • When dealing with string input you need to make decisions about whether to leave the string in Javascript encoded as UTF-16 (js_sys::JsString), or to copy the string into Rust encoded as UTF-8. The later is lossy and in some cases could cause the string to be different in Rust than Javascript. See the wasm-bindgen documentation here for further detail.

License

MIT

Information - Updated Mar 06, 2022

Stars: 6
Forks: 0
Issues: 0

Tensorflow rust bindings with loads of easy to use documentation

bindings for documentation can be found in github or on our docs page

Tensorflow rust bindings with loads of easy to use documentation

Wasm template for Rust hosting without npm-deploy on github pages using Travis script

It automatically hosts your wasm projects on gh-pages using a travis script on the latest commit

Wasm template for Rust hosting without npm-deploy on github pages using Travis script

Try Out Development Containers: Rust

A development container is a running GitHub Codespaces or vscode-remote-try-* sample projects, too

Try Out Development Containers: Rust

Roctogen: a rust client library for the GitHub v3 API

This client API is generated from the Isahc HTTP client

Roctogen: a rust client library for the GitHub v3 API

Try Out Development Containers: Rust

A development container is a running GitHub Codespaces or vscode-remote-try-* sample projects, too

Try Out Development Containers: Rust

Rust crate for logging to LogDNA

Bug reports and pull requests are welcome on GitHub at

Rust crate for logging to LogDNA

A rust github template for ease of use

Install the rust toolchain in order to have cargo installed by following

A rust github template for ease of use

Template for Rust lib/bin module with built-in GitHub Action to build and test

You will want to change the lib name and bin name in Cargo

Template for Rust lib/bin module with built-in GitHub Action to build and test

cargo_auto_github_lib

Library for cargo-auto automation tasks written in rust language with functions for github

cargo_auto_github_lib

A Rust library to connect to AxonServer

See the GitHub project Command / Query Responsibility Segregation (CQRS)

A Rust library to connect to AxonServer
Facebook Instagram Twitter GitHub Dribbble
Privacy