@loopholelabs/scale
v0.4.7
Published
Scale is a framework for building high-performance plugin systems into any application, all powered by WebAssembly.
Downloads
34
Keywords
Readme
With Scale Functions your users can write fully typed plugins in any language they choose, and your application can easily and safely run those plugins with the Scale Runtime, which provides state-of-the-art sandboxing, low startup times, and extremely high performance.
Currently, guest plugins can be written in Golang, Rust, and Typescript, with the Runtime supporting Golang and Typescript host applications.
Getting Started
First, install the CLI.
Create a new function, passing <name>:<tag>
to the new
command:
scale new hello:1.0
The following files will be generated:
version: v1alpha
name: hello
tag: 1.0
signature: [email protected]
language: go
dependencies:
- name: github.com/loopholelabs/scale-signature
version: v0.2.9
- name: github.com/loopholelabs/scale-signature-http
version: v0.3.4
source: scale.go
//go:build tinygo || js || wasm
package scale
import (
signature "github.com/loopholelabs/scale-signature-http"
)
func Scale(ctx *signature.Context) (*signature.Context, error) {
ctx.Response().SetBody("Hello, World!")
return ctx.Next()
}
module scale
go 1.18
require github.com/loopholelabs/scale-signature v0.2.9
require github.com/loopholelabs/scale-signature-http v0.3.4
For more information on these files, see the full Quick Start Guide.
Build the above function:
scale function build
And run:
scale run local/hello:1.0
This will start a local HTTP server on port 8080
and will run the function whenever you make a request to it.
Et Voilà! Your first Scale Function! 🎉
Functions be chained together, embedded in other language's apps, and used independently. For more information, as well as usage with other supported language, including Rust and TypeScript/JavaScript, see the documentation.
Documentation
Full instructions and documentation for Scale is available at https://scale.sh/docs.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/loopholelabs/scale. For more contribution information check out the contribution guide.
License
The Scale project is available as open source under the terms of the Apache License, Version 2.0.
Code of Conduct
Everyone interacting in the Scale project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the CNCF Code of Conduct.