15个版本 (6个破坏性版本)
0.7.3 | 2021年9月10日 |
---|---|
0.6.9 | 2021年9月3日 |
#511 in WebAssembly
每月28次下载
42KB
835 行
Tarantella包管理器 💃🖤
Tarantella是一款针对C/C++ WASM应用程序(主模块)和WASM库(侧模块)的现代包管理器,旨在实现动态链接!
需求
如果您注意到使用 tapm
时出现奇怪的行为,那么可能需要更新一个或多个需求版本。我已经创建并使用过 tapm
,使用的版本如下: emcc v2.0.29
, basic-http-server v0.8.1
,以及 gh v2.0.0
。
为什么使用Tarantella?
Tarantella通过作为几个优秀工具的包装器,使启动、构建、测试和分发WASM应用程序和库变得容易。
要启动您的应用程序,运行 tapm new "<app_name>" [-s]
(使用 -s
使其成为侧模块)。这将自动创建一个具有以下内容的C(但可以轻松转换为C++)WASM应用程序:
- 一个空的git仓库,
- 一个用于所有要动态链接的侧模块的依赖项文件夹,
- 一个用于您即将发布的所有版本的发布文件夹,
- 一个src文件夹,其中包含一个起始的
main.c
文件, - 一个
.gitignore
, - 一个
Makefile
以简化编译,以及 - 一个包含您项目所有相关信息
Tarantella.toml
文件。
要构建您的应用程序,运行 tapm build
。这将使用创建的 Makefile
在 Tarantella.toml
和 Makefile
中指定的构建目录创建一个新版本。
WASM 主模块使用 index.html
文件初始化。要测试您的浏览器中的主模块,请运行 tapm run [-p <some_port_>]
—— 这将启动一个 basic-http-server
。
发布应用时,Tarantella 依赖于 GitHub。有两种选择
- 如果您的存储库已经在 GitHub 上有一个公共远程源:Tarantella 将直接在那里发布您的版本。
- 如果您的存储库没有远程源,或者有一个私有远程源,或者有一个不在 GitHub 上托管的远程源:Tarantella 将创建一个名为
<app_name>_releases
的 GitHub 存储库并发布您的版本。
要发布您的应用,请运行 tapm login
登录到 GitHub,然后运行 tapm publish
创建一个新的版本。如果您没有 GitHub 账户,请运行: tapm register
获取有关如何注册 GitHub 的更多信息。
要添加对您的应用的依赖,请运行 tapm add <owner>/<dependency_name> [<version>]
和任何 Tarantella 库(即通过 tapm publish
发布的库),它们将被自动下载并添加到动态链接编译时在您的 Makefile
中需要链接的依赖项列表中。
为什么不使用 WAPM 呢?
截至目前,WAPM 只允许分发 .wasm
模块。如果您的 WASM 应用包含像 JS 库这样的东西,或者您已将动态库编译为 .o
文件,那么您将不得不单独分发这些文件 —— 这类事情可能会大大增加,例如,设置具有多个动态链接库的 WASM 应用程序的复杂性。
安装
cargo install tarantella
用法
tapm is a modern package manager for C/C++ WASM apps.
USAGE:
tapm <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
add Add a new dependency to your wasm app (e.g., tapm add "danbugs/dancing_web" ["0.2.0"])
build Build your wasm app
help Prints this message or the help of the given subcommand(s)
login Login to GitHub to publish your wasm app with Tarantella
new Create a new wasm app (e.g., tapm new "dancing_web"
[-s])
publish Publish a new release of your wasm app to GitHub with Tarantella (if your code is private, your
release will be published to a separate repo)
register Register to GitHub to publish your wasm app with Tarantella
run Start an HTTP server to test your main module (e.g., tapm run [-p 8000])
有关子命令的更多信息,请运行: tapm <subcommand> --help
。
路线图
请查看 Tarantella 的 GitHub 项目板以查看已实现的子命令 此处。
免责声明
这个包管理器是新的,绝对不可能是没有错误的。但是,这是一个我关心的项目,所以我会尽最大努力修复您在使用 tapm
时遇到的所有问题。要提交错误,请参阅 此。
依赖项
~14–29MB
~435K SLoC