This commit refactors the Wasmtime CLI tools to use `structopt` instead of `docopt`. The `wasmtime` tool now has the following subcommands: * `config new` - creates a new Wasmtime configuration file. * `run` - runs a WebAssembly module. * `wasm2obj` - translates a Wasm module to native object file. * `wast` - runs a test script file. If no subcommand is specified, the `run` subcommand is used. Thus, `wasmtime foo.wasm` should continue to function as expected. The `wasm2obj` and `wast` tools still exist, but delegate to the same implementation as the `wasmtime` subcommands. The standalone `wasm2obj` and `wast` tools may be removed in the future in favor of simply using `wasmtime`. Included in this commit is a breaking change to the default Wasmtime configuration file: it has been renamed from `wasmtime-cache-config.toml` to simply `config.toml`. The new name is less specific which will allow for additional (non-cache-related) settings in the future. There are some breaking changes to improve command line UX: * The `--cache-config` option has been renamed to `--config`. * The `--create-config-file` option has moved to the `config new` subcommand. As a result, the `wasm2obj` and `wast` tools cannot be used to create a new config file. * The short form of the `--optimize` option has changed from `-o` to `-O` for consistency. * The `wasm2obj` command takes the output object file as a required positional argument rather than the former required output *option* (e.g. `wasmtime wasm2obj foo.wasm foo.obj`).
69 lines
1.9 KiB
TOML
69 lines
1.9 KiB
TOML
[package]
|
|
name = "wasmtime-cli"
|
|
version = "0.7.0"
|
|
authors = ["The Wasmtime Project Developers"]
|
|
description = "Command-line interface for Wasmtime"
|
|
license = "Apache-2.0 WITH LLVM-exception"
|
|
documentation = "https://cranelift.readthedocs.io/"
|
|
categories = ["wasm"]
|
|
keywords = ["webassembly", "wasm"]
|
|
repository = "https://github.com/bytecodealliance/wasmtime"
|
|
readme = "README.md"
|
|
edition = "2018"
|
|
default-run = "wasmtime"
|
|
publish = false
|
|
|
|
[dependencies]
|
|
# Enable all supported architectures by default.
|
|
wasmtime = { path = "crates/api" }
|
|
wasmtime-debug = { path = "crates/debug" }
|
|
wasmtime-environ = { path = "crates/environ" }
|
|
wasmtime-interface-types = { path = "crates/interface-types" }
|
|
wasmtime-jit = { path = "crates/jit" }
|
|
wasmtime-obj = { path = "crates/obj" }
|
|
wasmtime-wast = { path = "crates/wast" }
|
|
wasmtime-wasi = { path = "crates/wasi" }
|
|
wasmtime-wasi-c = { path = "crates/wasi-c", optional = true }
|
|
wasi-common = { path = "crates/wasi-common" }
|
|
structopt = { version = "0.3.5", features = ["color", "suggestions"] }
|
|
faerie = "0.13.0"
|
|
anyhow = "1.0.19"
|
|
target-lexicon = { version = "0.9.0", default-features = false }
|
|
pretty_env_logger = "0.3.0"
|
|
file-per-thread-logger = "0.1.1"
|
|
wat = "1.0.2"
|
|
libc = "0.2.60"
|
|
rayon = "1.2.1"
|
|
wasm-webidl-bindings = "0.6"
|
|
|
|
[dev-dependencies]
|
|
more-asserts = "0.2.1"
|
|
# This feature requires the wasm32-wasi target be installed. It enables
|
|
# wasm32-wasi integration tests. To enable, run
|
|
# `cargo test --features test-programs`.
|
|
test-programs = { path = "crates/test-programs" }
|
|
|
|
[build-dependencies]
|
|
anyhow = "1.0.19"
|
|
|
|
[workspace]
|
|
members = [
|
|
"crates/fuzzing",
|
|
"crates/misc/rust",
|
|
"crates/misc/py",
|
|
"fuzz",
|
|
]
|
|
|
|
[features]
|
|
lightbeam = [
|
|
"wasmtime-environ/lightbeam",
|
|
"wasmtime-jit/lightbeam",
|
|
"wasmtime-wast/lightbeam",
|
|
"wasmtime/lightbeam",
|
|
]
|
|
wasi-c = ["wasmtime-wasi-c"]
|
|
test_programs = ["test-programs/test_programs"]
|
|
|
|
[badges]
|
|
maintenance = { status = "actively-developed" }
|