wasmCloud / wash

WAsmcloud SHell - the comprehensive command-line tool for wasmCloud development
https://wasmcloud.com
Apache License 2.0
149 stars 58 forks source link

[BUG] Installation problems on Ubuntu 22.04 #335

Closed rothgar closed 1 year ago

rothgar commented 1 year ago

Describe the bug I'm trying to install wash on Ubuntu 22.04.01 and having some problems.

To Reproduce First I installed with brew

brew install wasmcloud/wasmcloud/wash

The binary installs properly but throws an error when running wash up

=ERROR REPORT==== 14-Nov-2022::21:29:47.828717 ===                                                                                                                                                                   
Unable to load crypto library. Failed with error:                                                                                                                                                                    
"load_failed, Failed to load NIF library /home/rothgar/.wash/downloads/lib/crypto-5.1.1/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"               
OpenSSL might not be installed on this system.

I installed libssl-dev package via apt to get libcrypto.so but wash still fails

I then tried installing via apt and I'm getting an error resolving packagecloud (not sure why). dig and opening the browser works fine, but apt update throws an error.

Err:8 https://packagecloud.io/wasmCloud/core/ubuntu jammy Release                                      
  404  Not Found [IP: 13.56.57.255 443] 

I tried via cargo

cargo install wash-cli

And I had problems building because I was missing the libz-dev and libgit2-dev packages. I installed both via apt

After install finished I get an error

wash: error while loading shared libraries: libgit2.so.1.5: cannot open shared object file: No such file or directory

Expected behavior I expected brew to work or at minimum apt (apt might be my computer/network problems).

Screenshots If applicable, add screenshots to help explain your problem.

Environment (please complete the following information)

brooksmtownsend commented 1 year ago

@rothgar thank you for filing this bug, I've got good news and bad news.

The good news is we just removed the dependency on libgit and libssl for wash, so you should be able to install it with

cargo install wash-cli --version 0.14.0-alpha.1 --force

This is an alpha version as we're still testing some of the new changes, but you should be just fine using it. --force is just to overwrite any older version you had installed.

Bad news is that the wasmCloud OTP host does depend on libcrypto to do some random number generation, and this can affect newer systems like Ubuntu 22.04 that upgraded to OpenSSL 3.0.

This might take more of an expert, but if you are able to install an OpenSSL compatibility layer for 1.1 you should be able to run wasmCloud on it.

rothgar commented 1 year ago

Thanks for the info. I got wash installed with the alpha version and I was able to download an old version of openssl and install it. It looks like wash up is working properly (no errors and I can hit the localhost endpoint) Is there anything else I should test?

I installed openssl 1.1 with

wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
brooksmtownsend commented 1 year ago

@rothgar that's fantastic! Thank you for sharing that command, I've had to search through forums a few times before to get that to work. If you can run the following and get a response, you're good to go

wash ctl start actor wasmcloud.azurecr.io/echo:0.3.4
wash call MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5 HttpServer.HandleRequest '{"method": "GET", "path": "/echo", "body": "", "queryString":"","header":{}}'

This starts our example echo actor and calls its HTTP Handle Request method. Otherwise, you're good to go explore the documentation and examples!

rothgar commented 1 year ago

Looks like that still fails

wash ctl start actor wasmcloud.azurecr.io/echo:0.3.4
failed to read root certificates: MissingOrMalformedExtensions
brooksmtownsend commented 1 year ago

@rothgar Do you have the ca-certificates package installed on Ubuntu? The root certificates phrase makes me think of that package. A quick google pulls up the async-nats client so I'll take a look there

rothgar commented 1 year ago

Yes, it's installed

sudo apt info ca-certificates
Package: ca-certificates
Version: 20211016
Priority: important
Section: misc
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Julien Cristau <jcristau@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 384 kB
Depends: openssl (>= 1.1.1), debconf (>= 0.5) | debconf-2.0
Breaks: ca-certificates-java (<< 20121112+nmu1)
Enhances: openssl
Task: minimal, server-minimal
Download-Size: 148 kB
APT-Manual-Installed: yes
brooksmtownsend commented 1 year ago

@rothgar I'll try this out with an ubuntu 22 container real quick later today and see if I can find a workaround

brooksmtownsend commented 1 year ago

So I was able to get this working, albeit with a manual build of openssl 1.1.1s. here are my full steps...

apt update
apt upgrade
apt install curl build-essential pkg-config libz-dev -y
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
cargo install wash-cli --version 0.14.0-alpha.1
wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
curl -fLO https://www.openssl.org/source/openssl-1.1.1s.tar.gz
tar -xvf openssl-1.1.1s.tar.gz 
cd openssl-1.1.1s
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test
make install
wash up -d
wash ctl start actor wasmcloud.azurecr.io/echo:0.3.4
wash call MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5 HttpServer.HandleRequest '{"method": "GET", "path": "/echo", "body": "", "queryString":"","header":{}}'

I did the manual build of openssl only because there wasn't an arm64 available package similar to what you sent above

rothgar commented 1 year ago

All those steps worked except the last two :cry:

I get the same error I had before. I also saw a similar reported issue from 3 months ago of someone on Windows connecting to NATS from rust https://stackoverflow.com/questions/73342204/rust-missingormalformedextensions-while-connecting-to-nats

brooksmtownsend commented 1 year ago

Looks like we're a few minor versions behind latest on async-nats (0.18.0 -> 0.23.0) so it might have been fixed by then. Not entirely sure what would cause the issue, especially the same one between Ubuntu and Windows, but let me see if I can upgrade that and get a PR for you to try. We also may want to try a few substitutions for variables, like switching out the NATS host from 127.0.0.1 to localhost

rothgar commented 1 year ago

Happy to keep testing to get this working for myself and others. I didn't see any options to enable debug logging in wash and unfortunately I don't know enough about how wash works yet to dive in.

I tried restarting the nats server to listen on 0.0.0.0 (I get the same error) but I'm not exactly sure where else to look.

LiamRandall commented 1 year ago

Justin, I really appreciate all of the engagement on this - we work very closely with the NATS team so you are helping all of us out. Thank you!

stevelr commented 1 year ago

enable debug logging in wash

@rothgar you should be able to get debug logs from wash by setting the environment variable RUST_LOG=debug. On unix-like systems you can add it as a prefix to the cli:

RUST_LOG=debug wash ...

I'm just catching up on this thread .. is the error you're getting the one with MissingOrMalformedExtensions ?

I'm also surprised you still have an openssl dependency with the alpha version of wash - we tried to remove that dependency so it looks like that didn't work on some platforms. Could you please run cargo tree from the wash source folder and attaching the output to this issue? --Thanks!

brooksmtownsend commented 1 year ago

I'm also surprised you still have an openssl dependency with the alpha version of wash

@stevelr just one note, I think @rothgar is still depending on openssl because of the wasmCloud host dependency on libcrypto

rothgar commented 1 year ago

@stevelr Yes, the error I'm getting is failed to read root certificates: MissingOrMalformedExtensions when I try to start the actor.

I'm not trying to develop wash (just use it) so cargo tree didn't return anything. When I clone wash and run cargo tree this is the output

Click me ``` wash-cli v0.14.0-alpha.2 (/home/rothgar/src/wash) ├── anyhow v1.0.66 │ └── backtrace v0.3.66 │ ├── addr2line v0.17.0 │ │ └── gimli v0.26.2 │ ├── cfg-if v1.0.0 │ ├── libc v0.2.137 │ ├── miniz_oxide v0.5.4 │ │ └── adler v1.0.2 │ ├── object v0.29.0 │ │ └── memchr v2.5.0 │ └── rustc-demangle v0.1.21 │ [build-dependencies] │ └── cc v1.0.74 ├── async-nats v0.18.0 │ ├── base64-url v1.4.13 │ │ └── base64 v0.13.1 │ ├── bytes v1.2.1 │ ├── futures v0.3.25 │ │ ├── futures-channel v0.3.25 │ │ │ ├── futures-core v0.3.25 │ │ │ └── futures-sink v0.3.25 │ │ ├── futures-core v0.3.25 │ │ ├── futures-executor v0.3.25 │ │ │ ├── futures-core v0.3.25 │ │ │ ├── futures-task v0.3.25 │ │ │ └── futures-util v0.3.25 │ │ │ ├── futures-channel v0.3.25 (*) │ │ │ ├── futures-core v0.3.25 │ │ │ ├── futures-io v0.3.25 │ │ │ ├── futures-macro v0.3.25 (proc-macro) │ │ │ │ ├── proc-macro2 v1.0.47 │ │ │ │ │ └── unicode-ident v1.0.5 │ │ │ │ ├── quote v1.0.21 │ │ │ │ │ └── proc-macro2 v1.0.47 (*) │ │ │ │ └── syn v1.0.103 │ │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ │ ├── quote v1.0.21 (*) │ │ │ │ └── unicode-ident v1.0.5 │ │ │ ├── futures-sink v0.3.25 │ │ │ ├── futures-task v0.3.25 │ │ │ ├── memchr v2.5.0 │ │ │ ├── pin-project-lite v0.2.9 │ │ │ ├── pin-utils v0.1.0 │ │ │ └── slab v0.4.7 │ │ │ [build-dependencies] │ │ │ └── autocfg v1.1.0 │ │ ├── futures-io v0.3.25 │ │ ├── futures-sink v0.3.25 │ │ ├── futures-task v0.3.25 │ │ └── futures-util v0.3.25 (*) │ ├── http v0.2.8 │ │ ├── bytes v1.2.1 │ │ ├── fnv v1.0.7 │ │ └── itoa v1.0.4 │ ├── itoa v1.0.4 │ ├── nkeys v0.2.0 │ │ ├── byteorder v1.4.3 │ │ ├── data-encoding v2.3.2 │ │ ├── ed25519-dalek v1.0.1 │ │ │ ├── curve25519-dalek v3.2.0 │ │ │ │ ├── byteorder v1.4.3 │ │ │ │ ├── digest v0.9.0 │ │ │ │ │ └── generic-array v0.14.6 │ │ │ │ │ └── typenum v1.15.0 │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── version_check v0.9.4 │ │ │ │ ├── rand_core v0.5.1 │ │ │ │ ├── subtle v2.4.1 │ │ │ │ └── zeroize v1.5.7 │ │ │ │ └── zeroize_derive v1.3.2 (proc-macro) │ │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ │ ├── quote v1.0.21 (*) │ │ │ │ ├── syn v1.0.103 (*) │ │ │ │ └── synstructure v0.12.6 │ │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ │ ├── quote v1.0.21 (*) │ │ │ │ ├── syn v1.0.103 (*) │ │ │ │ └── unicode-xid v0.2.4 │ │ │ ├── ed25519 v1.5.2 │ │ │ │ └── signature v1.6.4 │ │ │ ├── sha2 v0.9.9 │ │ │ │ ├── block-buffer v0.9.0 │ │ │ │ │ └── generic-array v0.14.6 (*) │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ ├── cpufeatures v0.2.5 │ │ │ │ ├── digest v0.9.0 (*) │ │ │ │ └── opaque-debug v0.3.0 │ │ │ └── zeroize v1.5.7 (*) │ │ ├── log v0.4.17 │ │ │ └── cfg-if v1.0.0 │ │ ├── rand v0.8.5 │ │ │ ├── libc v0.2.137 │ │ │ ├── rand_chacha v0.3.1 │ │ │ │ ├── ppv-lite86 v0.2.16 │ │ │ │ └── rand_core v0.6.4 │ │ │ │ └── getrandom v0.2.8 │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ └── libc v0.2.137 │ │ │ └── rand_core v0.6.4 (*) │ │ └── signatory v0.23.2 │ │ ├── pkcs8 v0.7.6 │ │ │ ├── der v0.4.5 │ │ │ │ └── const-oid v0.6.2 │ │ │ ├── pem-rfc7468 v0.2.4 │ │ │ │ └── base64ct v1.1.1 │ │ │ ├── spki v0.4.1 │ │ │ │ └── der v0.4.5 (*) │ │ │ └── zeroize v1.5.7 (*) │ │ ├── rand_core v0.6.4 (*) │ │ ├── signature v1.6.4 │ │ └── zeroize v1.5.7 (*) │ ├── nuid v0.3.2 │ │ ├── lazy_static v1.4.0 │ │ └── rand v0.8.5 (*) │ ├── once_cell v1.16.0 │ ├── regex v1.6.0 │ │ ├── aho-corasick v0.7.19 │ │ │ └── memchr v2.5.0 │ │ ├── memchr v2.5.0 │ │ └── regex-syntax v0.6.27 │ ├── rustls-native-certs v0.6.2 │ │ ├── openssl-probe v0.1.5 │ │ └── rustls-pemfile v1.0.1 │ │ └── base64 v0.13.1 │ ├── rustls-pemfile v0.3.0 │ │ └── base64 v0.13.1 │ ├── serde v1.0.147 │ │ └── serde_derive v1.0.147 (proc-macro) │ │ ├── proc-macro2 v1.0.47 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ ├── serde_json v1.0.87 │ │ ├── itoa v1.0.4 │ │ ├── ryu v1.0.11 │ │ └── serde v1.0.147 (*) │ ├── serde_nanos v0.1.2 │ │ └── serde v1.0.147 (*) │ ├── serde_repr v0.1.9 (proc-macro) │ │ ├── proc-macro2 v1.0.47 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ ├── subslice v0.2.3 │ │ └── memchr v2.5.0 │ ├── time v0.3.16 │ │ ├── itoa v1.0.4 │ │ ├── libc v0.2.137 │ │ ├── num_threads v0.1.6 │ │ ├── serde v1.0.147 (*) │ │ └── time-core v0.1.0 │ ├── tokio v1.21.2 │ │ ├── bytes v1.2.1 │ │ ├── libc v0.2.137 │ │ ├── memchr v2.5.0 │ │ ├── mio v0.8.5 │ │ │ ├── libc v0.2.137 │ │ │ └── log v0.4.17 (*) │ │ ├── num_cpus v1.14.0 │ │ │ └── libc v0.2.137 │ │ ├── parking_lot v0.12.1 │ │ │ ├── lock_api v0.4.9 │ │ │ │ └── scopeguard v1.1.0 │ │ │ │ [build-dependencies] │ │ │ │ └── autocfg v1.1.0 │ │ │ └── parking_lot_core v0.9.4 │ │ │ ├── cfg-if v1.0.0 │ │ │ ├── libc v0.2.137 │ │ │ └── smallvec v1.10.0 │ │ ├── pin-project-lite v0.2.9 │ │ ├── signal-hook-registry v1.4.0 │ │ │ └── libc v0.2.137 │ │ ├── socket2 v0.4.7 │ │ │ └── libc v0.2.137 │ │ └── tokio-macros v1.8.0 (proc-macro) │ │ ├── proc-macro2 v1.0.47 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ │ [build-dependencies] │ │ └── autocfg v1.1.0 │ ├── tokio-rustls v0.23.4 │ │ ├── rustls v0.20.7 │ │ │ ├── log v0.4.17 (*) │ │ │ ├── ring v0.16.20 │ │ │ │ ├── libc v0.2.137 │ │ │ │ ├── once_cell v1.16.0 │ │ │ │ ├── spin v0.5.2 │ │ │ │ └── untrusted v0.7.1 │ │ │ │ [build-dependencies] │ │ │ │ └── cc v1.0.74 │ │ │ ├── sct v0.7.0 │ │ │ │ ├── ring v0.16.20 (*) │ │ │ │ └── untrusted v0.7.1 │ │ │ └── webpki v0.22.0 │ │ │ ├── ring v0.16.20 (*) │ │ │ └── untrusted v0.7.1 │ │ ├── tokio v1.21.2 (*) │ │ └── webpki v0.22.0 (*) │ ├── tokio-util v0.7.4 │ │ ├── bytes v1.2.1 │ │ ├── futures-core v0.3.25 │ │ ├── futures-sink v0.3.25 │ │ ├── pin-project-lite v0.2.9 │ │ ├── tokio v1.21.2 (*) │ │ └── tracing v0.1.37 │ │ ├── cfg-if v1.0.0 │ │ ├── log v0.4.17 (*) │ │ ├── pin-project-lite v0.2.9 │ │ ├── tracing-attributes v0.1.23 (proc-macro) │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ ├── quote v1.0.21 (*) │ │ │ └── syn v1.0.103 (*) │ │ └── tracing-core v0.1.30 │ │ └── once_cell v1.16.0 │ └── url v2.3.1 │ ├── form_urlencoded v1.1.0 │ │ └── percent-encoding v2.2.0 │ ├── idna v0.3.0 │ │ ├── unicode-bidi v0.3.8 │ │ └── unicode-normalization v0.1.22 │ │ └── tinyvec v1.6.0 │ │ └── tinyvec_macros v0.1.0 │ ├── percent-encoding v2.2.0 │ └── serde v1.0.147 (*) ├── atelier_core v0.2.22 │ ├── error-chain v0.12.4 │ │ └── backtrace v0.3.66 (*) │ │ [build-dependencies] │ │ └── version_check v0.9.4 │ ├── heck v0.3.3 │ │ └── unicode-segmentation v1.10.0 │ ├── lazy_static v1.4.0 │ ├── log v0.4.17 (*) │ ├── paste v1.0.9 (proc-macro) │ └── regex v1.6.0 (*) ├── bytes v1.2.1 ├── cargo_atelier v0.2.7 │ ├── atelier_lib v0.2.5 │ │ ├── atelier_assembler v0.1.4 │ │ │ ├── atelier_core v0.2.22 (*) │ │ │ ├── atelier_json v0.2.7 │ │ │ │ ├── atelier_core v0.2.22 (*) │ │ │ │ └── serde_json v1.0.87 (*) │ │ │ ├── atelier_smithy v0.2.13 │ │ │ │ ├── atelier_core v0.2.22 (*) │ │ │ │ ├── log v0.4.17 (*) │ │ │ │ ├── pest v2.4.0 │ │ │ │ │ ├── thiserror v1.0.37 │ │ │ │ │ │ └── thiserror-impl v1.0.37 (proc-macro) │ │ │ │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ │ │ │ ├── quote v1.0.21 (*) │ │ │ │ │ │ └── syn v1.0.103 (*) │ │ │ │ │ └── ucd-trie v0.1.5 │ │ │ │ ├── pest_ascii_tree v0.1.0 │ │ │ │ │ ├── ascii_tree v0.1.1 │ │ │ │ │ ├── escape_string v0.1.2 │ │ │ │ │ ├── pest v2.4.0 (*) │ │ │ │ │ └── pest_derive v2.4.0 (proc-macro) │ │ │ │ │ ├── pest v2.4.0 (*) │ │ │ │ │ └── pest_generator v2.4.0 │ │ │ │ │ ├── pest v2.4.0 (*) │ │ │ │ │ ├── pest_meta v2.4.0 │ │ │ │ │ │ ├── once_cell v1.16.0 │ │ │ │ │ │ └── pest v2.4.0 (*) │ │ │ │ │ │ [build-dependencies] │ │ │ │ │ │ └── sha1 v0.10.5 │ │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ │ ├── cpufeatures v0.2.5 │ │ │ │ │ │ └── digest v0.10.5 │ │ │ │ │ │ ├── block-buffer v0.10.3 │ │ │ │ │ │ │ └── generic-array v0.14.6 (*) │ │ │ │ │ │ └── crypto-common v0.1.6 │ │ │ │ │ │ ├── generic-array v0.14.6 (*) │ │ │ │ │ │ └── typenum v1.15.0 │ │ │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ │ │ ├── quote v1.0.21 (*) │ │ │ │ │ └── syn v1.0.103 (*) │ │ │ │ └── pest_derive v2.4.0 (proc-macro) (*) │ │ │ ├── atelier_test v0.1.4 │ │ │ │ ├── atelier_core v0.2.22 (*) │ │ │ │ └── pretty_assertions v0.7.2 │ │ │ │ ├── ansi_term v0.12.1 │ │ │ │ └── diff v0.1.13 │ │ │ └── log v0.4.17 (*) │ │ ├── atelier_core v0.2.22 (*) │ │ ├── atelier_describe v0.1.10 │ │ │ ├── atelier_core v0.2.22 (*) │ │ │ └── somedoc v0.2.10 │ │ │ ├── blob-uuid v0.4.0 │ │ │ │ ├── base64 v0.10.1 │ │ │ │ │ └── byteorder v1.4.3 │ │ │ │ └── uuid v0.8.2 │ │ │ │ └── getrandom v0.2.8 (*) │ │ │ ├── error-chain v0.12.4 (*) │ │ │ ├── lazy_static v1.4.0 │ │ │ ├── regex v1.6.0 (*) │ │ │ ├── serde v1.0.147 (*) │ │ │ └── serde_json v1.0.87 (*) │ │ ├── atelier_json v0.2.7 (*) │ │ ├── atelier_openapi v0.1.0 │ │ │ └── atelier_core v0.1.4 │ │ │ ├── error-chain v0.12.4 (*) │ │ │ ├── heck v0.3.3 (*) │ │ │ ├── lazy_static v1.4.0 │ │ │ └── regex v1.6.0 (*) │ │ ├── atelier_smithy v0.2.13 (*) │ │ └── regex v1.6.0 (*) │ ├── colored v2.0.0 │ │ ├── atty v0.2.14 │ │ │ └── libc v0.2.137 │ │ └── lazy_static v1.4.0 │ ├── somedoc v0.2.10 (*) │ └── structopt v0.3.26 │ ├── clap v2.34.0 │ │ ├── ansi_term v0.12.1 │ │ ├── atty v0.2.14 (*) │ │ ├── bitflags v1.3.2 │ │ ├── strsim v0.8.0 │ │ ├── textwrap v0.11.0 │ │ │ └── unicode-width v0.1.10 │ │ ├── unicode-width v0.1.10 │ │ └── vec_map v0.8.2 │ ├── lazy_static v1.4.0 │ └── structopt-derive v0.4.18 (proc-macro) │ ├── heck v0.3.3 (*) │ ├── proc-macro-error v1.0.4 │ │ ├── proc-macro-error-attr v1.0.4 (proc-macro) │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ └── quote v1.0.21 (*) │ │ │ [build-dependencies] │ │ │ └── version_check v0.9.4 │ │ ├── proc-macro2 v1.0.47 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ │ [build-dependencies] │ │ └── version_check v0.9.4 │ ├── proc-macro2 v1.0.47 (*) │ ├── quote v1.0.21 (*) │ └── syn v1.0.103 (*) ├── clap v4.0.18 │ ├── atty v0.2.14 (*) │ ├── bitflags v1.3.2 │ ├── clap_derive v4.0.18 (proc-macro) │ │ ├── heck v0.4.0 │ │ ├── proc-macro-error v1.0.4 (*) │ │ ├── proc-macro2 v1.0.47 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ ├── clap_lex v0.3.0 │ │ └── os_str_bytes v6.3.1 │ ├── once_cell v1.16.0 │ ├── strsim v0.10.0 │ └── termcolor v1.1.3 ├── cloudevents-sdk v0.5.0 │ ├── base64 v0.12.3 │ ├── bitflags v1.3.2 │ ├── chrono v0.4.22 │ │ ├── iana-time-zone v0.1.53 │ │ ├── num-integer v0.1.45 │ │ │ └── num-traits v0.2.15 │ │ │ [build-dependencies] │ │ │ └── autocfg v1.1.0 │ │ │ [build-dependencies] │ │ │ └── autocfg v1.1.0 │ │ ├── num-traits v0.2.15 (*) │ │ ├── serde v1.0.147 (*) │ │ └── time v0.1.44 │ │ └── libc v0.2.137 │ ├── delegate-attr v0.2.9 (proc-macro) │ │ ├── proc-macro2 v1.0.47 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ ├── hostname v0.3.1 │ │ ├── libc v0.2.137 │ │ └── match_cfg v0.1.0 │ ├── serde v1.0.147 (*) │ ├── serde_json v1.0.87 (*) │ ├── snafu v0.6.10 │ │ ├── doc-comment v0.3.3 │ │ └── snafu-derive v0.6.10 (proc-macro) │ │ ├── proc-macro2 v1.0.47 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ ├── url v2.3.1 (*) │ └── uuid v0.8.2 (*) ├── console v0.15.2 │ ├── lazy_static v1.4.0 │ ├── libc v0.2.137 │ ├── terminal_size v0.1.17 │ │ └── libc v0.2.137 │ └── unicode-width v0.1.10 ├── ctrlc v3.2.3 │ └── nix v0.25.0 │ ├── bitflags v1.3.2 │ ├── cfg-if v1.0.0 │ └── libc v0.2.137 │ [build-dependencies] │ └── autocfg v1.1.0 ├── derive_more v0.99.17 (proc-macro) │ ├── proc-macro2 v1.0.47 (*) │ ├── quote v1.0.21 (*) │ └── syn v1.0.103 (*) ├── dialoguer v0.10.2 │ ├── console v0.15.2 (*) │ ├── tempfile v3.3.0 │ │ ├── cfg-if v1.0.0 │ │ ├── fastrand v1.8.0 │ │ ├── libc v0.2.137 │ │ └── remove_dir_all v0.5.3 │ └── zeroize v1.5.7 (*) ├── dirs v4.0.0 │ └── dirs-sys v0.3.7 │ └── libc v0.2.137 ├── env_logger v0.9.1 │ ├── atty v0.2.14 (*) │ ├── humantime v2.1.0 │ ├── log v0.4.17 (*) │ ├── regex v1.6.0 (*) │ └── termcolor v1.1.3 ├── envmnt v0.10.4 │ ├── fsio v0.4.0 │ └── indexmap v1.9.1 │ └── hashbrown v0.12.3 │ └── ahash v0.7.6 │ ├── getrandom v0.2.8 (*) │ └── once_cell v1.16.0 │ [build-dependencies] │ └── version_check v0.9.4 │ [build-dependencies] │ └── autocfg v1.1.0 ├── heck v0.4.0 ├── ignore v0.4.18 │ ├── crossbeam-utils v0.8.12 │ │ └── cfg-if v1.0.0 │ ├── globset v0.4.9 │ │ ├── aho-corasick v0.7.19 (*) │ │ ├── bstr v0.2.17 │ │ │ └── memchr v2.5.0 │ │ ├── fnv v1.0.7 │ │ ├── log v0.4.17 (*) │ │ └── regex v1.6.0 (*) │ ├── lazy_static v1.4.0 │ ├── log v0.4.17 (*) │ ├── memchr v2.5.0 │ ├── regex v1.6.0 (*) │ ├── same-file v1.0.6 │ ├── thread_local v1.1.4 │ │ └── once_cell v1.16.0 │ └── walkdir v2.3.2 │ └── same-file v1.0.6 ├── indicatif v0.17.1 │ ├── console v0.15.2 (*) │ ├── number_prefix v0.4.0 │ └── unicode-width v0.1.10 ├── log v0.4.17 (*) ├── nkeys v0.2.0 (*) ├── oci-distribution v0.9.3 │ ├── futures-util v0.3.25 (*) │ ├── http v0.2.8 (*) │ ├── http-auth v0.1.6 │ │ └── memchr v2.5.0 │ ├── jwt v0.16.0 │ │ ├── base64 v0.13.1 │ │ ├── crypto-common v0.1.6 │ │ │ ├── generic-array v0.14.6 (*) │ │ │ └── typenum v1.15.0 │ │ ├── digest v0.10.5 │ │ │ ├── block-buffer v0.10.3 (*) │ │ │ ├── crypto-common v0.1.6 (*) │ │ │ └── subtle v2.4.1 │ │ ├── hmac v0.12.1 │ │ │ └── digest v0.10.5 (*) │ │ ├── serde v1.0.147 (*) │ │ ├── serde_json v1.0.87 (*) │ │ └── sha2 v0.10.6 │ │ ├── cfg-if v1.0.0 │ │ ├── cpufeatures v0.2.5 │ │ └── digest v0.10.5 (*) │ ├── lazy_static v1.4.0 │ ├── olpc-cjson v0.1.2 │ │ ├── serde v1.0.147 (*) │ │ ├── serde_json v1.0.87 (*) │ │ └── unicode-normalization v0.1.22 (*) │ ├── regex v1.6.0 (*) │ ├── reqwest v0.11.12 │ │ ├── base64 v0.13.1 │ │ ├── bytes v1.2.1 │ │ ├── encoding_rs v0.8.31 │ │ │ └── cfg-if v1.0.0 │ │ ├── futures-core v0.3.25 │ │ ├── futures-util v0.3.25 (*) │ │ ├── h2 v0.3.15 │ │ │ ├── bytes v1.2.1 │ │ │ ├── fnv v1.0.7 │ │ │ ├── futures-core v0.3.25 │ │ │ ├── futures-sink v0.3.25 │ │ │ ├── futures-util v0.3.25 (*) │ │ │ ├── http v0.2.8 (*) │ │ │ ├── indexmap v1.9.1 (*) │ │ │ ├── slab v0.4.7 (*) │ │ │ ├── tokio v1.21.2 (*) │ │ │ ├── tokio-util v0.7.4 (*) │ │ │ └── tracing v0.1.37 (*) │ │ ├── http v0.2.8 (*) │ │ ├── http-body v0.4.5 │ │ │ ├── bytes v1.2.1 │ │ │ ├── http v0.2.8 (*) │ │ │ └── pin-project-lite v0.2.9 │ │ ├── hyper v0.14.22 │ │ │ ├── bytes v1.2.1 │ │ │ ├── futures-channel v0.3.25 (*) │ │ │ ├── futures-core v0.3.25 │ │ │ ├── futures-util v0.3.25 (*) │ │ │ ├── h2 v0.3.15 (*) │ │ │ ├── http v0.2.8 (*) │ │ │ ├── http-body v0.4.5 (*) │ │ │ ├── httparse v1.8.0 │ │ │ ├── httpdate v1.0.2 │ │ │ ├── itoa v1.0.4 │ │ │ ├── pin-project-lite v0.2.9 │ │ │ ├── socket2 v0.4.7 (*) │ │ │ ├── tokio v1.21.2 (*) │ │ │ ├── tower-service v0.3.2 │ │ │ ├── tracing v0.1.37 (*) │ │ │ └── want v0.3.0 │ │ │ ├── log v0.4.17 (*) │ │ │ └── try-lock v0.2.3 │ │ ├── hyper-rustls v0.23.0 │ │ │ ├── http v0.2.8 (*) │ │ │ ├── hyper v0.14.22 (*) │ │ │ ├── rustls v0.20.7 (*) │ │ │ ├── tokio v1.21.2 (*) │ │ │ └── tokio-rustls v0.23.4 (*) │ │ ├── ipnet v2.5.0 │ │ ├── log v0.4.17 (*) │ │ ├── mime v0.3.16 │ │ ├── once_cell v1.16.0 │ │ ├── percent-encoding v2.2.0 │ │ ├── pin-project-lite v0.2.9 │ │ ├── rustls v0.20.7 (*) │ │ ├── rustls-pemfile v1.0.1 (*) │ │ ├── serde v1.0.147 (*) │ │ ├── serde_json v1.0.87 (*) │ │ ├── serde_urlencoded v0.7.1 │ │ │ ├── form_urlencoded v1.1.0 (*) │ │ │ ├── itoa v1.0.4 │ │ │ ├── ryu v1.0.11 │ │ │ └── serde v1.0.147 (*) │ │ ├── tokio v1.21.2 (*) │ │ ├── tokio-rustls v0.23.4 (*) │ │ ├── tokio-util v0.7.4 (*) │ │ ├── tower-service v0.3.2 │ │ ├── url v2.3.1 (*) │ │ └── webpki-roots v0.22.5 │ │ └── webpki v0.22.0 (*) │ ├── serde v1.0.147 (*) │ ├── serde_json v1.0.87 (*) │ ├── sha2 v0.10.6 (*) │ ├── thiserror v1.0.37 (*) │ ├── tokio v1.21.2 (*) │ ├── tracing v0.1.37 (*) │ └── unicase v2.6.0 │ [build-dependencies] │ └── version_check v0.9.4 ├── once_cell v1.16.0 ├── path-absolutize v3.0.14 │ └── path-dedot v3.0.18 │ └── once_cell v1.16.0 ├── provider-archive v0.6.0 │ ├── async-compression v0.3.15 │ │ ├── flate2 v1.0.24 │ │ │ ├── crc32fast v1.3.2 │ │ │ │ └── cfg-if v1.0.0 │ │ │ └── miniz_oxide v0.5.4 (*) │ │ ├── futures-core v0.3.25 │ │ ├── memchr v2.5.0 │ │ ├── pin-project-lite v0.2.9 │ │ └── tokio v1.21.2 (*) │ ├── data-encoding v2.3.2 │ ├── ring v0.16.20 (*) │ ├── tokio v1.21.2 (*) │ ├── tokio-stream v0.1.11 │ │ ├── futures-core v0.3.25 │ │ ├── pin-project-lite v0.2.9 │ │ └── tokio v1.21.2 (*) │ ├── tokio-tar v0.3.0 │ │ ├── filetime v0.2.18 │ │ │ ├── cfg-if v1.0.0 │ │ │ └── libc v0.2.137 │ │ ├── futures-core v0.3.25 │ │ ├── libc v0.2.137 │ │ ├── tokio v1.21.2 (*) │ │ ├── tokio-stream v0.1.11 (*) │ │ └── xattr v0.2.3 │ │ └── libc v0.2.137 │ └── wascap v0.8.0 │ ├── base64 v0.13.1 │ ├── data-encoding v2.3.2 │ ├── env_logger v0.8.4 │ │ ├── atty v0.2.14 (*) │ │ ├── humantime v2.1.0 │ │ ├── log v0.4.17 (*) │ │ ├── regex v1.6.0 (*) │ │ └── termcolor v1.1.3 │ ├── humantime v2.1.0 │ ├── lazy_static v1.4.0 │ ├── log v0.4.17 (*) │ ├── nkeys v0.2.0 (*) │ ├── nuid v0.3.2 (*) │ ├── parity-wasm v0.42.2 │ ├── ring v0.16.20 (*) │ ├── serde v1.0.147 (*) │ ├── serde_derive v1.0.147 (proc-macro) (*) │ └── serde_json v1.0.87 (*) ├── regex v1.6.0 (*) ├── remove_dir_all v0.7.0 │ └── libc v0.2.137 ├── rmp-serde v1.1.1 │ ├── byteorder v1.4.3 │ ├── rmp v0.8.11 │ │ ├── byteorder v1.4.3 │ │ ├── num-traits v0.2.15 (*) │ │ └── paste v1.0.9 (proc-macro) │ └── serde v1.0.147 (*) ├── rmpv v1.0.0 │ ├── num-traits v0.2.15 (*) │ └── rmp v0.8.11 (*) ├── sanitize-filename v0.4.0 │ ├── lazy_static v1.4.0 │ └── regex v1.6.0 (*) ├── semver v1.0.14 │ └── serde v1.0.147 (*) ├── serde v1.0.147 (*) ├── serde_json v1.0.87 (*) ├── serde_with v2.0.1 │ ├── serde v1.0.147 (*) │ └── serde_with_macros v2.0.1 (proc-macro) │ ├── darling v0.14.2 │ │ ├── darling_core v0.14.2 │ │ │ ├── fnv v1.0.7 │ │ │ ├── ident_case v1.0.1 │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ ├── quote v1.0.21 (*) │ │ │ ├── strsim v0.10.0 │ │ │ └── syn v1.0.103 (*) │ │ └── darling_macro v0.14.2 (proc-macro) │ │ ├── darling_core v0.14.2 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ ├── proc-macro2 v1.0.47 (*) │ ├── quote v1.0.21 (*) │ └── syn v1.0.103 (*) ├── serde_yaml v0.9.14 │ ├── indexmap v1.9.1 (*) │ ├── itoa v1.0.4 │ ├── ryu v1.0.11 │ ├── serde v1.0.147 (*) │ └── unsafe-libyaml v0.2.4 ├── sha2 v0.10.6 (*) ├── tempfile v3.3.0 (*) ├── term-table v1.3.2 │ ├── lazy_static v1.4.0 │ ├── regex v1.6.0 (*) │ └── unicode-width v0.1.10 ├── thiserror v1.0.37 (*) ├── tokio v1.21.2 (*) ├── toml v0.5.9 │ └── serde v1.0.147 (*) ├── walkdir v2.3.2 (*) ├── wascap v0.8.0 (*) ├── wash-lib v0.4.0-alpha.1 (/home/rothgar/src/wash/crates/wash-lib) │ ├── anyhow v1.0.66 (*) │ ├── async-compression v0.3.15 (*) │ ├── clap v4.0.18 (*) │ ├── command-group v1.0.8 │ │ ├── async-trait v0.1.58 (proc-macro) │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ ├── quote v1.0.21 (*) │ │ │ └── syn v1.0.103 (*) │ │ ├── nix v0.22.3 │ │ │ ├── bitflags v1.3.2 │ │ │ ├── cfg-if v1.0.0 │ │ │ ├── libc v0.2.137 │ │ │ └── memoffset v0.6.5 │ │ │ [build-dependencies] │ │ │ └── autocfg v1.1.0 │ │ └── tokio v1.21.2 (*) │ ├── config v0.13.2 │ │ ├── async-trait v0.1.58 (proc-macro) (*) │ │ ├── json5 v0.4.1 │ │ │ ├── pest v2.4.0 (*) │ │ │ ├── pest_derive v2.4.0 (proc-macro) (*) │ │ │ └── serde v1.0.147 (*) │ │ ├── lazy_static v1.4.0 │ │ ├── nom v7.1.1 │ │ │ ├── memchr v2.5.0 │ │ │ └── minimal-lexical v0.2.1 │ │ ├── pathdiff v0.2.1 │ │ ├── ron v0.7.1 │ │ │ ├── base64 v0.13.1 │ │ │ ├── bitflags v1.3.2 │ │ │ └── serde v1.0.147 (*) │ │ ├── rust-ini v0.18.0 │ │ │ ├── cfg-if v1.0.0 │ │ │ └── ordered-multimap v0.4.3 │ │ │ ├── dlv-list v0.3.0 │ │ │ └── hashbrown v0.12.3 (*) │ │ ├── serde v1.0.147 (*) │ │ ├── serde_json v1.0.87 (*) │ │ ├── toml v0.5.9 (*) │ │ └── yaml-rust v0.4.5 │ │ └── linked-hash-map v0.5.6 │ ├── dirs v4.0.0 (*) │ ├── futures v0.3.25 (*) │ ├── log v0.4.17 (*) │ ├── reqwest v0.11.12 (*) │ ├── semver v1.0.14 (*) │ ├── serde v1.0.147 (*) │ ├── serde_json v1.0.87 (*) │ ├── serde_with v2.0.1 (*) │ ├── test-case v2.2.2 │ │ └── test-case-macros v2.2.2 (proc-macro) │ │ ├── cfg-if v1.0.0 │ │ ├── proc-macro-error v1.0.4 (*) │ │ ├── proc-macro2 v1.0.47 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ ├── thiserror v1.0.37 (*) │ ├── tokio v1.21.2 (*) │ ├── tokio-stream v0.1.11 (*) │ ├── tokio-tar v0.3.0 (*) │ └── weld-codegen v0.5.0 │ ├── Inflector v0.11.4 │ │ ├── lazy_static v1.4.0 │ │ └── regex v1.6.0 (*) │ ├── anyhow v1.0.66 (*) │ ├── atelier_assembler v0.1.4 (*) │ ├── atelier_core v0.2.22 (*) │ ├── atelier_json v0.2.7 (*) │ ├── atelier_smithy v0.2.13 (*) │ ├── bytes v1.2.1 │ ├── cfg-if v1.0.0 │ ├── clap v3.2.23 │ │ ├── atty v0.2.14 (*) │ │ ├── bitflags v1.3.2 │ │ ├── clap_derive v3.2.18 (proc-macro) │ │ │ ├── heck v0.4.0 │ │ │ ├── proc-macro-error v1.0.4 (*) │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ ├── quote v1.0.21 (*) │ │ │ └── syn v1.0.103 (*) │ │ ├── clap_lex v0.2.4 │ │ │ └── os_str_bytes v6.3.1 │ │ ├── indexmap v1.9.1 (*) │ │ ├── once_cell v1.16.0 │ │ ├── strsim v0.10.0 │ │ ├── termcolor v1.1.3 │ │ └── textwrap v0.16.0 │ ├── directories v4.0.1 │ │ └── dirs-sys v0.3.7 (*) │ ├── downloader v0.2.6 │ │ ├── futures v0.3.25 (*) │ │ ├── rand v0.8.5 (*) │ │ ├── reqwest v0.11.12 (*) │ │ ├── thiserror v1.0.37 (*) │ │ └── tokio v1.21.2 (*) │ ├── handlebars v4.3.5 │ │ ├── log v0.4.17 (*) │ │ ├── pest v2.4.0 (*) │ │ ├── pest_derive v2.4.0 (proc-macro) (*) │ │ ├── serde v1.0.147 (*) │ │ ├── serde_json v1.0.87 (*) │ │ └── thiserror v1.0.37 (*) │ ├── lazy_static v1.4.0 │ ├── lexical-sort v0.3.1 │ │ └── any_ascii v0.1.7 │ ├── reqwest v0.11.12 (*) │ ├── rustc-hash v1.1.0 │ ├── semver v1.0.14 (*) │ ├── serde v1.0.147 (*) │ ├── serde_json v1.0.87 (*) │ ├── tempfile v3.3.0 (*) │ ├── thiserror v1.0.37 (*) │ └── toml v0.5.9 (*) ├── wasmbus-rpc v0.10.1 │ ├── anyhow v1.0.66 (*) │ ├── async-nats v0.18.0 (*) │ ├── async-trait v0.1.58 (proc-macro) (*) │ ├── atty v0.2.14 (*) │ ├── base64 v0.13.1 │ ├── bytes v1.2.1 │ ├── cfg-if v1.0.0 │ ├── data-encoding v2.3.2 │ ├── futures v0.3.25 (*) │ ├── lazy_static v1.4.0 │ ├── minicbor v0.17.1 │ ├── minicbor-ser v0.1.3 │ │ ├── minicbor v0.11.5 │ │ └── serde v1.0.147 (*) │ ├── nats v0.22.0 │ │ ├── base64 v0.13.1 │ │ ├── base64-url v1.4.13 (*) │ │ ├── blocking v1.2.0 │ │ │ ├── async-channel v1.7.1 │ │ │ │ ├── concurrent-queue v1.2.4 │ │ │ │ │ └── cache-padded v1.2.0 │ │ │ │ ├── event-listener v2.5.3 │ │ │ │ └── futures-core v0.3.25 │ │ │ ├── async-task v4.3.0 │ │ │ ├── atomic-waker v1.0.0 │ │ │ ├── fastrand v1.8.0 │ │ │ ├── futures-lite v1.12.0 │ │ │ │ ├── fastrand v1.8.0 │ │ │ │ ├── futures-core v0.3.25 │ │ │ │ ├── futures-io v0.3.25 │ │ │ │ ├── memchr v2.5.0 │ │ │ │ ├── parking v2.0.0 │ │ │ │ ├── pin-project-lite v0.2.9 │ │ │ │ └── waker-fn v1.1.0 │ │ │ └── once_cell v1.16.0 │ │ ├── crossbeam-channel v0.5.6 │ │ │ ├── cfg-if v1.0.0 │ │ │ └── crossbeam-utils v0.8.12 (*) │ │ ├── fastrand v1.8.0 │ │ ├── itoa v1.0.4 │ │ ├── json v0.12.4 │ │ ├── lazy_static v1.4.0 │ │ ├── libc v0.2.137 │ │ ├── log v0.4.17 (*) │ │ ├── memchr v2.5.0 │ │ ├── nkeys v0.2.0 (*) │ │ ├── nuid v0.3.2 (*) │ │ ├── once_cell v1.16.0 │ │ ├── parking_lot v0.12.1 (*) │ │ ├── regex v1.6.0 (*) │ │ ├── rustls v0.19.1 │ │ │ ├── base64 v0.13.1 │ │ │ ├── log v0.4.17 (*) │ │ │ ├── ring v0.16.20 (*) │ │ │ ├── sct v0.6.1 │ │ │ │ ├── ring v0.16.20 (*) │ │ │ │ └── untrusted v0.7.1 │ │ │ └── webpki v0.21.4 │ │ │ ├── ring v0.16.20 (*) │ │ │ └── untrusted v0.7.1 │ │ ├── rustls-native-certs v0.5.0 │ │ │ ├── openssl-probe v0.1.5 │ │ │ └── rustls v0.19.1 (*) │ │ ├── rustls-pemfile v0.2.1 │ │ │ └── base64 v0.13.1 │ │ ├── serde v1.0.147 (*) │ │ ├── serde_json v1.0.87 (*) │ │ ├── serde_nanos v0.1.2 (*) │ │ ├── serde_repr v0.1.9 (proc-macro) (*) │ │ ├── time v0.3.16 (*) │ │ ├── url v2.3.1 (*) │ │ └── webpki v0.21.4 (*) │ ├── nkeys v0.2.0 (*) │ ├── once_cell v1.16.0 │ ├── opentelemetry v0.17.0 │ │ ├── async-trait v0.1.58 (proc-macro) (*) │ │ ├── crossbeam-channel v0.5.6 (*) │ │ ├── futures-channel v0.3.25 (*) │ │ ├── futures-executor v0.3.25 (*) │ │ ├── futures-util v0.3.25 (*) │ │ ├── lazy_static v1.4.0 │ │ ├── percent-encoding v2.2.0 │ │ ├── pin-project v1.0.12 │ │ │ └── pin-project-internal v1.0.12 (proc-macro) │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ ├── quote v1.0.21 (*) │ │ │ └── syn v1.0.103 (*) │ │ ├── rand v0.8.5 (*) │ │ ├── thiserror v1.0.37 (*) │ │ ├── tokio v1.21.2 (*) │ │ └── tokio-stream v0.1.11 (*) │ ├── opentelemetry-otlp v0.10.0 │ │ ├── async-trait v0.1.58 (proc-macro) (*) │ │ ├── futures v0.3.25 (*) │ │ ├── futures-util v0.3.25 (*) │ │ ├── http v0.2.8 (*) │ │ ├── opentelemetry v0.17.0 (*) │ │ ├── opentelemetry-http v0.6.0 │ │ │ ├── async-trait v0.1.58 (proc-macro) (*) │ │ │ ├── bytes v1.2.1 │ │ │ ├── http v0.2.8 (*) │ │ │ ├── opentelemetry v0.17.0 (*) │ │ │ └── reqwest v0.11.12 (*) │ │ ├── prost v0.9.0 │ │ │ ├── bytes v1.2.1 │ │ │ └── prost-derive v0.9.0 (proc-macro) │ │ │ ├── anyhow v1.0.66 │ │ │ ├── itertools v0.10.5 │ │ │ │ └── either v1.8.0 │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ ├── quote v1.0.21 (*) │ │ │ └── syn v1.0.103 (*) │ │ ├── reqwest v0.11.12 (*) │ │ ├── thiserror v1.0.37 (*) │ │ ├── tokio v1.21.2 (*) │ │ └── tonic v0.6.2 │ │ ├── async-stream v0.3.3 │ │ │ ├── async-stream-impl v0.3.3 (proc-macro) │ │ │ │ ├── proc-macro2 v1.0.47 (*) │ │ │ │ ├── quote v1.0.21 (*) │ │ │ │ └── syn v1.0.103 (*) │ │ │ └── futures-core v0.3.25 │ │ ├── async-trait v0.1.58 (proc-macro) (*) │ │ ├── base64 v0.13.1 │ │ ├── bytes v1.2.1 │ │ ├── futures-core v0.3.25 │ │ ├── futures-util v0.3.25 (*) │ │ ├── h2 v0.3.15 (*) │ │ ├── http v0.2.8 (*) │ │ ├── http-body v0.4.5 (*) │ │ ├── hyper v0.14.22 (*) │ │ ├── hyper-timeout v0.4.1 │ │ │ ├── hyper v0.14.22 (*) │ │ │ ├── pin-project-lite v0.2.9 │ │ │ ├── tokio v1.21.2 (*) │ │ │ └── tokio-io-timeout v1.2.0 │ │ │ ├── pin-project-lite v0.2.9 │ │ │ └── tokio v1.21.2 (*) │ │ ├── percent-encoding v2.2.0 │ │ ├── pin-project v1.0.12 (*) │ │ ├── prost v0.9.0 (*) │ │ ├── prost-derive v0.9.0 (proc-macro) (*) │ │ ├── tokio v1.21.2 (*) │ │ ├── tokio-stream v0.1.11 (*) │ │ ├── tokio-util v0.6.10 │ │ │ ├── bytes v1.2.1 │ │ │ ├── futures-core v0.3.25 │ │ │ ├── futures-sink v0.3.25 │ │ │ ├── log v0.4.17 (*) │ │ │ ├── pin-project-lite v0.2.9 │ │ │ └── tokio v1.21.2 (*) │ │ ├── tower v0.4.13 │ │ │ ├── futures-core v0.3.25 │ │ │ ├── futures-util v0.3.25 (*) │ │ │ ├── indexmap v1.9.1 (*) │ │ │ ├── pin-project v1.0.12 (*) │ │ │ ├── pin-project-lite v0.2.9 │ │ │ ├── rand v0.8.5 (*) │ │ │ ├── slab v0.4.7 (*) │ │ │ ├── tokio v1.21.2 (*) │ │ │ ├── tokio-util v0.7.4 (*) │ │ │ ├── tower-layer v0.3.2 │ │ │ ├── tower-service v0.3.2 │ │ │ └── tracing v0.1.37 (*) │ │ ├── tower-layer v0.3.2 │ │ ├── tower-service v0.3.2 │ │ ├── tracing v0.1.37 (*) │ │ └── tracing-futures v0.2.5 │ │ ├── pin-project v1.0.12 (*) │ │ └── tracing v0.1.37 (*) │ │ [build-dependencies] │ │ ├── prost-build v0.9.0 │ │ │ ├── bytes v1.2.1 │ │ │ ├── heck v0.3.3 (*) │ │ │ ├── itertools v0.10.5 (*) │ │ │ ├── lazy_static v1.4.0 │ │ │ ├── log v0.4.17 │ │ │ │ └── cfg-if v1.0.0 │ │ │ ├── multimap v0.8.3 │ │ │ ├── petgraph v0.6.2 │ │ │ │ ├── fixedbitset v0.4.2 │ │ │ │ └── indexmap v1.9.1 (*) │ │ │ ├── prost v0.9.0 │ │ │ │ ├── bytes v1.2.1 │ │ │ │ └── prost-derive v0.9.0 (proc-macro) (*) │ │ │ ├── prost-types v0.9.0 │ │ │ │ ├── bytes v1.2.1 │ │ │ │ └── prost v0.9.0 (*) │ │ │ ├── regex v1.6.0 (*) │ │ │ └── tempfile v3.3.0 (*) │ │ │ [build-dependencies] │ │ │ └── which v4.3.0 │ │ │ ├── either v1.8.0 │ │ │ └── libc v0.2.137 │ │ └── tonic-build v0.6.2 │ │ ├── proc-macro2 v1.0.47 (*) │ │ ├── prost-build v0.9.0 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ ├── rmp-serde v1.1.1 (*) │ ├── serde v1.0.147 (*) │ ├── serde_bytes v0.11.7 │ │ └── serde v1.0.147 (*) │ ├── serde_json v1.0.87 (*) │ ├── sha2 v0.10.6 (*) │ ├── thiserror v1.0.37 (*) │ ├── time v0.3.16 (*) │ ├── tokio v1.21.2 (*) │ ├── tokio-timer v0.2.13 │ │ ├── crossbeam-utils v0.7.2 │ │ │ ├── cfg-if v0.1.10 │ │ │ └── lazy_static v1.4.0 │ │ │ [build-dependencies] │ │ │ └── autocfg v1.1.0 │ │ ├── futures v0.1.31 │ │ ├── slab v0.4.7 (*) │ │ └── tokio-executor v0.1.10 │ │ ├── crossbeam-utils v0.7.2 (*) │ │ └── futures v0.1.31 │ ├── toml v0.5.9 (*) │ ├── tracing v0.1.37 (*) │ ├── tracing-futures v0.2.5 (*) │ ├── tracing-opentelemetry v0.17.4 │ │ ├── once_cell v1.16.0 │ │ ├── opentelemetry v0.17.0 (*) │ │ ├── tracing v0.1.37 (*) │ │ ├── tracing-core v0.1.30 (*) │ │ ├── tracing-log v0.1.3 │ │ │ ├── lazy_static v1.4.0 │ │ │ ├── log v0.4.17 (*) │ │ │ └── tracing-core v0.1.30 (*) │ │ └── tracing-subscriber v0.3.16 │ │ ├── matchers v0.1.0 │ │ │ └── regex-automata v0.1.10 │ │ │ └── regex-syntax v0.6.27 │ │ ├── nu-ansi-term v0.46.0 │ │ │ └── overload v0.1.1 │ │ ├── once_cell v1.16.0 │ │ ├── regex v1.6.0 (*) │ │ ├── serde v1.0.147 (*) │ │ ├── serde_json v1.0.87 (*) │ │ ├── sharded-slab v0.1.4 │ │ │ └── lazy_static v1.4.0 │ │ ├── smallvec v1.10.0 │ │ ├── thread_local v1.1.4 (*) │ │ ├── tracing v0.1.37 (*) │ │ ├── tracing-core v0.1.30 (*) │ │ ├── tracing-log v0.1.3 (*) │ │ └── tracing-serde v0.1.3 │ │ ├── serde v1.0.147 (*) │ │ └── tracing-core v0.1.30 (*) │ ├── tracing-subscriber v0.3.16 (*) │ ├── uuid v1.2.1 │ │ ├── getrandom v0.2.8 (*) │ │ └── serde v1.0.147 (*) │ ├── wascap v0.8.0 (*) │ └── wasmbus-macros v0.1.11 (proc-macro) │ ├── proc-macro-error v1.0.4 (*) │ ├── proc-macro2 v1.0.47 (*) │ ├── quote v1.0.21 (*) │ └── syn v1.0.103 (*) │ [build-dependencies] │ └── weld-codegen v0.5.0 (*) ├── wasmcloud-control-interface v0.21.0 │ ├── async-nats v0.18.0 (*) │ ├── cloudevents-sdk v0.5.0 (*) │ ├── futures v0.3.25 (*) │ ├── rmp-serde v1.1.1 (*) │ ├── serde v1.0.147 (*) │ ├── serde_json v1.0.87 (*) │ ├── tokio v1.21.2 (*) │ ├── tracing v0.1.37 (*) │ ├── tracing-futures v0.2.5 (*) │ └── wasmbus-rpc v0.10.1 (*) ├── wasmcloud-test-util v0.5.0 │ ├── anyhow v1.0.66 (*) │ ├── async-nats v0.18.0 (*) │ ├── async-trait v0.1.58 (proc-macro) (*) │ ├── base64 v0.13.1 │ ├── futures v0.3.25 (*) │ ├── log v0.4.17 (*) │ ├── regex v1.6.0 (*) │ ├── serde v1.0.147 (*) │ ├── serde_json v1.0.87 (*) │ ├── termcolor v1.1.3 │ ├── tokio v1.21.2 (*) │ ├── toml v0.5.9 (*) │ ├── wasmbus-rpc v0.10.1 (*) │ └── wasmcloud-interface-testing v0.6.0 │ ├── async-trait v0.1.58 (proc-macro) (*) │ ├── regex v1.6.0 (*) │ ├── rmp-serde v1.1.1 (*) │ ├── serde v1.0.147 (*) │ ├── serde_bytes v0.11.7 (*) │ ├── serde_json v1.0.87 (*) │ └── wasmbus-rpc v0.10.1 (*) │ [build-dependencies] │ └── weld-codegen v0.5.0 (*) ├── weld-codegen v0.5.0 (*) └── which v4.3.0 (*) [dev-dependencies] ├── assert-json-diff v2.0.2 │ ├── serde v1.0.147 (*) │ └── serde_json v1.0.87 (*) ├── cmd_lib v1.3.0 │ ├── cmd_lib_macros v1.3.0 (proc-macro) │ │ ├── proc-macro-error v1.0.4 (*) │ │ ├── proc-macro2 v1.0.47 (*) │ │ ├── quote v1.0.21 (*) │ │ └── syn v1.0.103 (*) │ ├── faccess v0.2.4 │ │ ├── bitflags v1.3.2 │ │ └── libc v0.2.137 │ ├── lazy_static v1.4.0 │ ├── log v0.4.17 (*) │ └── os_pipe v0.9.2 │ └── libc v0.2.137 ├── reqwest v0.11.12 (*) ├── scopeguard v1.1.0 ├── serial_test v0.9.0 │ ├── dashmap v5.4.0 │ │ ├── cfg-if v1.0.0 │ │ ├── hashbrown v0.12.3 (*) │ │ ├── lock_api v0.4.9 (*) │ │ ├── once_cell v1.16.0 │ │ └── parking_lot_core v0.9.4 (*) │ ├── futures v0.3.25 (*) │ ├── lazy_static v1.4.0 │ ├── log v0.4.17 (*) │ ├── parking_lot v0.12.1 (*) │ └── serial_test_derive v0.9.0 (proc-macro) │ ├── proc-macro-error v1.0.4 (*) │ ├── proc-macro2 v1.0.47 (*) │ ├── quote v1.0.21 (*) │ └── syn v1.0.103 (*) ├── tempfile v3.3.0 (*) ├── test-case v2.2.2 (*) └── test_bin v0.4.0 ```
brooksmtownsend commented 1 year ago

That sounds like a rustls error, and they fixed something in their 0.20.5 release that says

Correct compatbility with servers which return no TLS extensions and take advantage of a special case encoding.

So, maybe this is the issue. We will want to try upgrading async-nats to a newer version

brooksmtownsend commented 1 year ago

Reopening this issue as the issue with libcrypto.so is still present, but with a passable workaround. In order to get past this you can install the libssl1.1 compatibility layer on Ubuntu 22.04 and wash up will work just fine.

For arm64 machines, you can run the following to install wash (you may need to pipe into sudo bash for packagecloud):

apt update; apt install curl -y
curl -s https://packagecloud.io/install/repositories/wasmcloud/core/script.deb.sh | bash
apt install wash
curl -fLO http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_arm64.deb
dpkg -i libssl1.1_1.1.1n-0+deb11u3_arm64.deb
wash --help

And for amd64 machines:

apt update; apt install wget -y
wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
curl -s https://packagecloud.io/install/repositories/wasmcloud/core/script.deb.sh | bash
apt install wash
brooksmtownsend commented 1 year ago

Actually, closing in favor of #366 so it can better describe the issue. @rothgar, you should be able to get past the vast majority of your issues above involving libgit, installing on Ubuntu 22, etc

rothgar commented 1 year ago

Thanks! It looks like it's working on my system now.