https://github.com/mandrean/cw-optimizoor
A blazingly fast compiling & optimization tool for CosmWasm smart contracts.
https://github.com/mandrean/cw-optimizoor
cargo cosmwasm rust wasm webassembly
Last synced: 5 months ago
JSON representation
A blazingly fast compiling & optimization tool for CosmWasm smart contracts.
- Host: GitHub
- URL: https://github.com/mandrean/cw-optimizoor
- Owner: mandrean
- License: mit
- Created: 2022-07-17T04:11:40.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-11-28T21:40:25.000Z (over 1 year ago)
- Last Synced: 2024-11-14T19:40:01.949Z (5 months ago)
- Topics: cargo, cosmwasm, rust, wasm, webassembly
- Language: Rust
- Homepage:
- Size: 661 KB
- Stars: 50
- Watchers: 4
- Forks: 6
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: Changelog.md
- License: LICENSE
Awesome Lists containing this project
- awesome-cosmwasm - mandrean/cw-optimizoor - A very (Tooling / Other Contracts)
README
# cw-optimizoor

[](https://github.com/mandrean/cw-optimizoor/actions/workflows/workflow.yaml)
[](https://crates.io/crates/cw-optimizoor)
[](https://docs.rs/cw-optimizoor)
A blazingly fast alternative to [CosmWasm/rust-optimizer] for compiling & optimizing CW smart contracts.
It's primarily meant to speed up local development and testing.
### Features:
- **Fast** - especially in workspaces with many contracts
- Uses same optimizations as `rust-optimizer` by default
- No dependency on Docker
- Supports both single- & multi-contract workspaces
- Written as a [cargo subcommand]
- Cross-platform, cross-arch### Installation
```sh
# Pre-requisites
$ rustup install 1.69.0
$ rustup target add wasm32-unknown-unknown$ cargo install cw-optimizoor
```You might also need any of the following:
#### Linux
```sh
# Ubuntu
$ sudo apt install -y cmake pkg-config libssl-dev clang# Fedora
$ sudo dnf install -y cmake openssl-devel clang
```#### macOS
```sh
$ xcode-select --install # clang
$ brew install cmake pkg-config
```#### Windows
- [Visual Studio C++, Clang & Build Tools]
- [CMake]
- [Python]### Usage
```sh
$ cargo cw-optimizoor -hUsage: cargo cw-optimizoor [OPTIONS] [WORKSPACE_PATH]
Arguments:
[WORKSPACE_PATH] Path to the workspace dir or Cargo.tomlOptions:
-f, --features Space or comma separated list of features to activate
--all-features Activate all available features
--no-default-features Do not activate the `default` feature
-h, --help Print help information
-V, --version Print version information
```### Example
```sh
$ cargo cw-optimizoor # defaults to the current dir
# cargo cw-optimizoor Cargo.toml # or this for pointing directly at a Cargo manifest
# cargo cw-optimizoor . # or this for the current dir🧐️ Compiling .../monorepo/Cargo.toml
Finished release [optimized] target(s) in 0.10s
🤓 Intermediate checksums:
...326a37596ef54377869d8f7caa37cec393333b9808c9ecc75ddadf1357193a50 contract_1.wasm
...170190ce817c36aa093263f4689abaffafe363909aea13e48b80c43a39a7cde9 contract_2.wasm
...6a718777f28b2e213e3f18f60ffbf62febe563072e8a89b0cfa5359b3e0bed1b contract_3.wasm
...9f9dae24e8a388730b40de3092117cf84476dacfb6ed0112bec53b1b21127333 contract_4.wasm
...9255c18758fd0b27de38c8aacd2030167b9d3c1575374d811f89742be8af4f8b contract_5.wasm
🥸 Ahh I'm optimiziing
...✅ contract_1 was optimized.
...⏭️ contract_2 is unchanged. Skipping.
...✅ contract_3 was optimized.
...⏭️ contract_4 is unchanged. Skipping.
...✅ contract_5 was optimized.
🤓 Final checksums:
...e11db2d5b9ff3e14deee2a04ee40be0d1f8da96c4a45bc55348ea74ff4a4d4ae contract_1-aarch64.wasm
...0565368394fd2fa1409909f63fe11d09f37a1f777f26bc5ddb65d17c2fc82bb9 contract_2-aarch64.wasm
...1364e024dab8cc057d090d8686042d8ab5e41e810b16d464be71a24aedc79ad3 contract_3-aarch64.wasm
...4f553da8e620137c194eddfddcaa7baa29239ec723d0b1b2b49d11fe625986e5 contract_4-aarch64.wasm
...61ea8988f4275c15785d7496c453a37ae4c3b021d4521120fc5c0d532287f864 contract_5-aarch64.wasm
🫡 Done. Saved optimized artifacts to:
.../monorepo/artifacts
```[CosmWasm/rust-optimizer]: https://github.com/CosmWasm/rust-optimizer
[CosmWasm]: https://cosmwasm.com
[cargo subcommand]: https://doc.rust-lang.org/cargo/reference/external-tools.html#custom-subcommands
[Visual Studio C++, Clang & Build Tools]: https://visualstudio.microsoft.com/downloads/
[CMake]: https://cmake.org/download/
[Python]: https://www.python.org/downloads/windows/