1 个不稳定版本
0.0.2 | 2020年1月11日 |
---|
#87 in #serverless
67KB
1.5K SLoC
embly
一个用于协作和扩展的无服务器 Web 应用程序框架。
有关 embly 的更多背景信息和详细信息,请阅读此处或此处
你好,世界!
创建一个新文件夹,并添加以下文件和目录结构
├── embly.hcl
└── hello
├── Cargo.toml
└── src
└── main.rs
现在添加以下文件内容
embly.hcl
:
function "hello" {
runtime = "rust"
path = "./hello"
}
gateway {
type = "http"
port = 8765
route "/" {
function = "${function.hello}"
}
}
hello/Cargo.toml
:
[package]
name = "hello"
version = "0.0.1"
edition = "2018"
[dependencies]
embly = "0.0.5"
hello/src/main.rs
:
extern crate embly;
use embly::{
http::{run_catch_error, Body, Request, ResponseWriter},
prelude::*,
Error,
};
async fn execute(_req: Request<Body>, mut w: ResponseWriter) -> Result<(), Error> {
w.write_all(b"Hello World")?; // writing our hello response bytes
Ok(()) // if an error is returned the server will respond with an HTTP error
}
// this function is run first
fn main() {
run_catch_error(execute); // this is the embly::http::run function that is specific to http responses
}
您现在可以使用 embly dev
运行项目进行本地开发,尽管使用 Docker 是最快的方式
docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):/app -p 8765:8765 -it embly/embly embly dev
有关如何在安装部分中运行 embly 的更多信息。
embly 命令
$ embly
Usage: embly [--version] [--help] <command> [<args>]
Available commands are:
build Build an embly project
bundle Create a bundled project file
db Run various database maintenace tasks.
dev Develop a local embly project
run Run a local embly project
安装
embly 使用 docker 下载和运行构建镜像。建议您在 docker 容器内运行 embly 并允许其访问 docker 套接字。如果您位于 embly 项目的根目录中,您可以像这样启动开发服务器
docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):/app -p 8765:8765 -it embly/embly embly dev
如果您想要在本地运行 embly,您需要安装 cargo
和 go
。以下命令序列应该可以工作
go get github.com/embly/embly/cmd/embly
cargo install embly-wrapper
cargo install lucetc
链接
embly 以前是 wasabi,它更侧重于在 WebAssembly 运行时内提供完整的操作系统功能。该代码可在此处找到。
依赖项
~16–26MB
~402K SLoC