Scale
A framework for building high-performance plugin systems into any application, powered by WebAssembly.
Install / Use
/learn @loopholelabs/ScaleREADME
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: http@v0.3.4
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.
Project Managed By:
Related Skills
himalaya
347.0kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
taskflow
347.0kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
frontend-design
107.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
