diff --git a/meta-oniro-staging/recipes-connectivity/zenoh/files/Cargo.toml-do-not-abort-on-panic.patch b/meta-oniro-staging/recipes-connectivity/zenoh/files/Cargo.toml-do-not-abort-on-panic.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ec7060ac4cf7d8cb8c4aa8624c2afacebb0df42f
--- /dev/null
+++ b/meta-oniro-staging/recipes-connectivity/zenoh/files/Cargo.toml-do-not-abort-on-panic.patch
@@ -0,0 +1,28 @@
+From 93e3d4b581f9b492d3b474698bfe409143676d1a Mon Sep 17 00:00:00 2001
+From: Francesco Pham <francesco.pham@huawei.com>
+Date: Wed, 2 Feb 2022 16:14:16 +0100
+Subject: [PATCH] Cargo.toml: do not abort on panic
+
+panic abort mode is incompatible with OE's rust,
+OE's rust is configured to unwind, and this setting clashes with it.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Relate-to: https://lists.openembedded.org/g/openembedded-core/topic/88421290
+
+Signed-off-by: Francesco Pham <francesco.pham@huawei.com>
+---
+ Cargo.toml | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 24721e88..9c1b7f60 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -54,4 +54,3 @@ debug = false     # If you want debug symbol in release mode, set the env variab
+ lto = "fat"
+ codegen-units = 1
+ opt-level = 3
+-panic = "abort"
+-- 
+2.25.1
diff --git a/meta-oniro-staging/recipes-connectivity/zenoh/files/zenohc.pc b/meta-oniro-staging/recipes-connectivity/zenoh/files/zenohc.pc
new file mode 100644
index 0000000000000000000000000000000000000000..56aa421e246183e4b722ea8dc7229eed46d8e672
--- /dev/null
+++ b/meta-oniro-staging/recipes-connectivity/zenoh/files/zenohc.pc
@@ -0,0 +1,14 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+prefix=/usr
+exec_prefix=${prefix}
+includedir=${prefix}/include
+libdir=${exec_prefix}/lib
+
+Name: The zenoh C client library
+Description: zenoh client library written in C and targeting micro-controllers. 
+Version: 0.5.0-beta.9
+Cflags: -I${includedir}
+Libs: -L${libdir} -lzenohc
diff --git a/meta-oniro-staging/recipes-connectivity/zenoh/zenoh-c.inc b/meta-oniro-staging/recipes-connectivity/zenoh/zenoh-c.inc
new file mode 100644
index 0000000000000000000000000000000000000000..ae3ad97fc2aa74b49906b83bcdfc5670f0e6cd28
--- /dev/null
+++ b/meta-oniro-staging/recipes-connectivity/zenoh/zenoh-c.inc
@@ -0,0 +1,26 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+SRC_URI += " \
+    file://Cargo.toml-do-not-abort-on-panic.patch \
+    file://zenohc.pc \
+"
+
+# this is needed because the library is unversioned
+SOLIBS = ".so"
+FILES_SOLIBSDEV = ""
+
+do_install:append() {
+    # install pkgconfig file so that the library is discoverable with pkgconfig 
+    install -D -m0600 ${WORKDIR}/zenohc.pc ${D}${libdir}/pkgconfig/zenohc.pc
+
+    # meta-rust installs the library in rust directory, moving it to ${libdir}
+    mv ${D}${libdir}/rust/libzenohc.so ${D}${libdir}/libzenohc.so
+    rm -rf ${D}${libdir}/rust
+
+    # install header files
+    install -d ${D}${includedir}/
+    install -m 600 ${S}/include/zenoh.h ${S}/include/zenoh_macros.h ${S}/include/zenoh_concrete.h \
+        ${S}/include/zenoh_commons.h ${D}${includedir}/
+}
diff --git a/meta-oniro-staging/recipes-connectivity/zenoh/zenoh-c_git.bb b/meta-oniro-staging/recipes-connectivity/zenoh/zenoh-c_git.bb
new file mode 100644
index 0000000000000000000000000000000000000000..27b04867a8265b980952de69e327fc2110a6fae4
--- /dev/null
+++ b/meta-oniro-staging/recipes-connectivity/zenoh/zenoh-c_git.bb
@@ -0,0 +1,345 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+# Auto-Generated by cargo-bitbake 0.3.15
+#
+inherit cargo
+
+SRC_URI += "git://git@github.com/eclipse-zenoh/zenoh-c.git;protocol=ssh;nobranch=1"
+SRCREV = "2dd18de408dc6fe6bfc9480cc704cab6220d1bb4"
+S = "${WORKDIR}/git"
+CARGO_SRC_DIR = ""
+PV:append = ".AUTOINC+2dd18de408"
+
+SRC_URI += " \
+    crate://crates.io/aes/0.7.5 \
+    crate://crates.io/aho-corasick/0.7.18 \
+    crate://crates.io/ansi_term/0.12.1 \
+    crate://crates.io/anyhow/1.0.53 \
+    crate://crates.io/async-attributes/1.1.2 \
+    crate://crates.io/async-channel/1.6.1 \
+    crate://crates.io/async-executor/1.4.1 \
+    crate://crates.io/async-global-executor/2.0.2 \
+    crate://crates.io/async-io/1.6.0 \
+    crate://crates.io/async-lock/2.4.0 \
+    crate://crates.io/async-mutex/1.4.0 \
+    crate://crates.io/async-process/1.3.0 \
+    crate://crates.io/async-rustls/0.2.0 \
+    crate://crates.io/async-std/1.10.0 \
+    crate://crates.io/async-task/4.1.0 \
+    crate://crates.io/async-trait/0.1.52 \
+    crate://crates.io/atomic-waker/1.0.0 \
+    crate://crates.io/atty/0.2.14 \
+    crate://crates.io/autocfg/0.1.8 \
+    crate://crates.io/autocfg/1.1.0 \
+    crate://crates.io/base64/0.13.0 \
+    crate://crates.io/base64ct/1.1.1 \
+    crate://crates.io/bincode/1.3.3 \
+    crate://crates.io/bitflags/1.3.2 \
+    crate://crates.io/block-buffer/0.7.3 \
+    crate://crates.io/block-buffer/0.9.0 \
+    crate://crates.io/block-padding/0.1.5 \
+    crate://crates.io/block-padding/0.2.1 \
+    crate://crates.io/blocking/1.1.0 \
+    crate://crates.io/bumpalo/3.9.1 \
+    crate://crates.io/byte-tools/0.3.1 \
+    crate://crates.io/byteorder/1.4.3 \
+    crate://crates.io/bytes/1.1.0 \
+    crate://crates.io/cache-padded/1.2.0 \
+    crate://crates.io/cbindgen/0.20.0 \
+    crate://crates.io/cc/1.0.73 \
+    crate://crates.io/cfg-if/1.0.0 \
+    crate://crates.io/cipher/0.3.0 \
+    crate://crates.io/clap/2.34.0 \
+    crate://crates.io/concurrent-queue/1.2.2 \
+    crate://crates.io/const-oid/0.6.2 \
+    crate://crates.io/core-foundation-sys/0.8.3 \
+    crate://crates.io/core-foundation/0.9.3 \
+    crate://crates.io/cpufeatures/0.2.1 \
+    crate://crates.io/crossbeam-utils/0.8.7 \
+    crate://crates.io/crypto-bigint/0.2.11 \
+    crate://crates.io/crypto-mac/0.11.1 \
+    crate://crates.io/ct-logs/0.8.0 \
+    crate://crates.io/ctor/0.1.21 \
+    crate://crates.io/der/0.4.5 \
+    crate://crates.io/digest/0.8.1 \
+    crate://crates.io/digest/0.9.0 \
+    crate://crates.io/dirs-next/2.0.0 \
+    crate://crates.io/dirs-sys-next/0.1.2 \
+    crate://crates.io/env_logger/0.9.0 \
+    crate://crates.io/event-listener/2.5.2 \
+    crate://crates.io/fake-simd/0.1.2 \
+    crate://crates.io/fastrand/1.7.0 \
+    crate://crates.io/fixedbitset/0.4.1 \
+    crate://crates.io/flume/0.10.11 \
+    crate://crates.io/fs2/0.4.3 \
+    crate://crates.io/futures-channel/0.3.21 \
+    crate://crates.io/futures-core/0.3.21 \
+    crate://crates.io/futures-executor/0.3.21 \
+    crate://crates.io/futures-io/0.3.21 \
+    crate://crates.io/futures-lite/1.12.0 \
+    crate://crates.io/futures-macro/0.3.21 \
+    crate://crates.io/futures-sink/0.3.21 \
+    crate://crates.io/futures-task/0.3.21 \
+    crate://crates.io/futures-util/0.3.21 \
+    crate://crates.io/futures/0.3.21 \
+    crate://crates.io/generic-array/0.12.4 \
+    crate://crates.io/generic-array/0.14.5 \
+    crate://crates.io/getrandom/0.2.4 \
+    crate://crates.io/git-version-macro/0.3.5 \
+    crate://crates.io/git-version/0.3.5 \
+    crate://crates.io/glob/0.3.0 \
+    crate://crates.io/gloo-timers/0.2.3 \
+    crate://crates.io/hashbrown/0.11.2 \
+    crate://crates.io/heck/0.3.3 \
+    crate://crates.io/hermit-abi/0.1.19 \
+    crate://crates.io/hex/0.4.3 \
+    crate://crates.io/hmac/0.11.0 \
+    crate://crates.io/home/0.5.3 \
+    crate://crates.io/humantime/2.1.0 \
+    crate://crates.io/indexmap/1.8.0 \
+    crate://crates.io/instant/0.1.12 \
+    crate://crates.io/ipnetwork/0.18.0 \
+    crate://crates.io/itoa/1.0.1 \
+    crate://crates.io/js-sys/0.3.56 \
+    crate://crates.io/json5/0.4.1 \
+    crate://crates.io/keccak/0.1.0 \
+    crate://crates.io/kv-log-macro/1.0.7 \
+    crate://crates.io/lazy_static/1.4.0 \
+    crate://crates.io/libc/0.2.118 \
+    crate://crates.io/libloading/0.7.3 \
+    crate://crates.io/libm/0.2.2 \
+    crate://crates.io/linked-hash-map/0.5.4 \
+    crate://crates.io/lock_api/0.4.6 \
+    crate://crates.io/log/0.4.14 \
+    crate://crates.io/maplit/1.0.2 \
+    crate://crates.io/memchr/2.4.1 \
+    crate://crates.io/memoffset/0.6.5 \
+    crate://crates.io/mio/0.7.14 \
+    crate://crates.io/mio/0.8.0 \
+    crate://crates.io/miow/0.3.7 \
+    crate://crates.io/nanorand/0.6.1 \
+    crate://crates.io/nix/0.22.3 \
+    crate://crates.io/nix/0.23.1 \
+    crate://crates.io/ntapi/0.3.7 \
+    crate://crates.io/num-bigint-dig/0.7.0 \
+    crate://crates.io/num-integer/0.1.44 \
+    crate://crates.io/num-iter/0.1.42 \
+    crate://crates.io/num-traits/0.2.14 \
+    crate://crates.io/num_cpus/1.13.1 \
+    crate://crates.io/once_cell/1.9.0 \
+    crate://crates.io/opaque-debug/0.2.3 \
+    crate://crates.io/opaque-debug/0.3.0 \
+    crate://crates.io/openssl-probe/0.1.5 \
+    crate://crates.io/ordered-float/2.10.0 \
+    crate://crates.io/parking/2.0.0 \
+    crate://crates.io/paste/1.0.6 \
+    crate://crates.io/pem-rfc7468/0.2.4 \
+    crate://crates.io/pest/2.1.3 \
+    crate://crates.io/pest_derive/2.1.0 \
+    crate://crates.io/pest_generator/2.1.3 \
+    crate://crates.io/pest_meta/2.1.3 \
+    crate://crates.io/petgraph/0.6.0 \
+    crate://crates.io/pin-project-internal/1.0.10 \
+    crate://crates.io/pin-project-lite/0.2.8 \
+    crate://crates.io/pin-project/1.0.10 \
+    crate://crates.io/pin-utils/0.1.0 \
+    crate://crates.io/pkcs1/0.2.4 \
+    crate://crates.io/pkcs8/0.7.6 \
+    crate://crates.io/pnet/0.28.0 \
+    crate://crates.io/pnet_base/0.28.0 \
+    crate://crates.io/pnet_datalink/0.28.0 \
+    crate://crates.io/pnet_macros/0.28.0 \
+    crate://crates.io/pnet_macros_support/0.28.0 \
+    crate://crates.io/pnet_packet/0.28.0 \
+    crate://crates.io/pnet_sys/0.28.0 \
+    crate://crates.io/pnet_transport/0.28.0 \
+    crate://crates.io/polling/2.2.0 \
+    crate://crates.io/ppv-lite86/0.2.16 \
+    crate://crates.io/proc-macro-hack/0.5.19 \
+    crate://crates.io/proc-macro2/1.0.36 \
+    crate://crates.io/quinn-proto/0.7.3 \
+    crate://crates.io/quinn/0.7.2 \
+    crate://crates.io/quote/1.0.15 \
+    crate://crates.io/rand/0.8.5 \
+    crate://crates.io/rand_chacha/0.3.1 \
+    crate://crates.io/rand_core/0.6.3 \
+    crate://crates.io/redox_syscall/0.2.10 \
+    crate://crates.io/redox_users/0.4.0 \
+    crate://crates.io/regex-syntax/0.6.25 \
+    crate://crates.io/regex/1.5.4 \
+    crate://crates.io/remove_dir_all/0.5.3 \
+    crate://crates.io/ring/0.16.20 \
+    crate://crates.io/rsa/0.5.0 \
+    crate://crates.io/rustc_version/0.4.0 \
+    crate://crates.io/rustls-native-certs/0.5.0 \
+    crate://crates.io/rustls/0.19.1 \
+    crate://crates.io/ryu/1.0.9 \
+    crate://crates.io/schannel/0.1.19 \
+    crate://crates.io/scopeguard/1.1.0 \
+    crate://crates.io/sct/0.6.1 \
+    crate://crates.io/security-framework-sys/2.6.1 \
+    crate://crates.io/security-framework/2.6.1 \
+    crate://crates.io/semver/1.0.5 \
+    crate://crates.io/serde/1.0.136 \
+    crate://crates.io/serde_derive/1.0.136 \
+    crate://crates.io/serde_json/1.0.79 \
+    crate://crates.io/serde_yaml/0.8.23 \
+    crate://crates.io/sha-1/0.8.2 \
+    crate://crates.io/sha3/0.9.1 \
+    crate://crates.io/shared_memory/0.12.0 \
+    crate://crates.io/shellexpand/2.1.0 \
+    crate://crates.io/signal-hook-registry/1.4.0 \
+    crate://crates.io/signal-hook/0.3.13 \
+    crate://crates.io/slab/0.4.5 \
+    crate://crates.io/smallvec/1.8.0 \
+    crate://crates.io/socket2/0.3.19 \
+    crate://crates.io/socket2/0.4.4 \
+    crate://crates.io/spin/0.5.2 \
+    crate://crates.io/spin/0.9.2 \
+    crate://crates.io/spki/0.4.1 \
+    crate://crates.io/stop-token/0.7.0 \
+    crate://crates.io/strsim/0.8.0 \
+    crate://crates.io/subtle/2.4.1 \
+    crate://crates.io/syn/1.0.86 \
+    crate://crates.io/synstructure/0.12.6 \
+    crate://crates.io/tempfile/3.3.0 \
+    crate://crates.io/termcolor/1.1.2 \
+    crate://crates.io/textwrap/0.11.0 \
+    crate://crates.io/thiserror-impl/1.0.30 \
+    crate://crates.io/thiserror/1.0.30 \
+    crate://crates.io/tinyvec/1.5.1 \
+    crate://crates.io/tinyvec_macros/0.1.0 \
+    crate://crates.io/tokio/1.17.0 \
+    crate://crates.io/toml/0.5.8 \
+    crate://crates.io/tracing-attributes/0.1.19 \
+    crate://crates.io/tracing-core/0.1.22 \
+    crate://crates.io/tracing/0.1.30 \
+    crate://crates.io/typenum/1.15.0 \
+    crate://crates.io/ucd-trie/0.1.3 \
+    crate://crates.io/uhlc/0.4.1 \
+    crate://crates.io/unicode-segmentation/1.9.0 \
+    crate://crates.io/unicode-width/0.1.9 \
+    crate://crates.io/unicode-xid/0.2.2 \
+    crate://crates.io/untrusted/0.7.1 \
+    crate://crates.io/unzip-n/0.1.2 \
+    crate://crates.io/uuid/0.8.2 \
+    crate://crates.io/validated_struct/0.1.11 \
+    crate://crates.io/validated_struct_macros/0.1.10 \
+    crate://crates.io/value-bag/1.0.0-alpha.8 \
+    crate://crates.io/vec_map/0.8.2 \
+    crate://crates.io/version_check/0.9.4 \
+    crate://crates.io/waker-fn/1.1.0 \
+    crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
+    crate://crates.io/wasm-bindgen-backend/0.2.79 \
+    crate://crates.io/wasm-bindgen-futures/0.4.29 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.79 \
+    crate://crates.io/wasm-bindgen-macro/0.2.79 \
+    crate://crates.io/wasm-bindgen-shared/0.2.79 \
+    crate://crates.io/wasm-bindgen/0.2.79 \
+    crate://crates.io/web-sys/0.3.56 \
+    crate://crates.io/webpki/0.21.4 \
+    crate://crates.io/webpki/0.22.0 \
+    crate://crates.io/wepoll-ffi/0.1.2 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi-util/0.1.5 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi/0.3.9 \
+    crate://crates.io/yaml-rust/0.4.5 \
+    crate://crates.io/zeroize/1.4.3 \
+    crate://crates.io/zeroize_derive/1.3.1 \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-buffers;destsuffix=zenoh-buffers \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-cfg-properties;destsuffix=zenoh-cfg-properties \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-collections;destsuffix=zenoh-collections \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-config;destsuffix=zenoh-config \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-core;destsuffix=zenoh-core \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-crypto;destsuffix=zenoh-crypto \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-link-commons;destsuffix=zenoh-link-commons \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-link-quic;destsuffix=zenoh-link-quic \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-link-tcp;destsuffix=zenoh-link-tcp \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-link-tls;destsuffix=zenoh-link-tls \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-link-udp;destsuffix=zenoh-link-udp \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-link-unixsock_stream;destsuffix=zenoh-link-unixsock_stream \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-link;destsuffix=zenoh-link \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-macros;destsuffix=zenoh-macros \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-plugin-trait;destsuffix=zenoh-plugin-trait \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-protocol-core;destsuffix=zenoh-protocol-core \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-protocol;destsuffix=zenoh-protocol \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-sync;destsuffix=zenoh-sync \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-transport;destsuffix=zenoh-transport \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh-util;destsuffix=zenoh-util \
+    git://github.com/eclipse-zenoh/zenoh;protocol=https;nobranch=1;name=zenoh;destsuffix=zenoh \
+"
+
+SRCREV_FORMAT .= "_zenoh"
+SRCREV_zenoh = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh"
+SRCREV_FORMAT .= "_zenoh-buffers"
+SRCREV_zenoh-buffers = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-buffers"
+SRCREV_FORMAT .= "_zenoh-cfg-properties"
+SRCREV_zenoh-cfg-properties = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-cfg-properties"
+SRCREV_FORMAT .= "_zenoh-collections"
+SRCREV_zenoh-collections = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-collections"
+SRCREV_FORMAT .= "_zenoh-config"
+SRCREV_zenoh-config = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-config"
+SRCREV_FORMAT .= "_zenoh-core"
+SRCREV_zenoh-core = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-core"
+SRCREV_FORMAT .= "_zenoh-crypto"
+SRCREV_zenoh-crypto = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-crypto"
+SRCREV_FORMAT .= "_zenoh-link"
+SRCREV_zenoh-link = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-link"
+SRCREV_FORMAT .= "_zenoh-link-commons"
+SRCREV_zenoh-link-commons = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-link-commons"
+SRCREV_FORMAT .= "_zenoh-link-quic"
+SRCREV_zenoh-link-quic = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-link-quic"
+SRCREV_FORMAT .= "_zenoh-link-tcp"
+SRCREV_zenoh-link-tcp = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-link-tcp"
+SRCREV_FORMAT .= "_zenoh-link-tls"
+SRCREV_zenoh-link-tls = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-link-tls"
+SRCREV_FORMAT .= "_zenoh-link-udp"
+SRCREV_zenoh-link-udp = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-link-udp"
+SRCREV_FORMAT .= "_zenoh-link-unixsock_stream"
+SRCREV_zenoh-link-unixsock_stream = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-link-unixsock_stream"
+SRCREV_FORMAT .= "_zenoh-macros"
+SRCREV_zenoh-macros = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-macros"
+SRCREV_FORMAT .= "_zenoh-plugin-trait"
+SRCREV_zenoh-plugin-trait = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-plugin-trait"
+SRCREV_FORMAT .= "_zenoh-protocol"
+SRCREV_zenoh-protocol = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-protocol"
+SRCREV_FORMAT .= "_zenoh-protocol-core"
+SRCREV_zenoh-protocol-core = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-protocol-core"
+SRCREV_FORMAT .= "_zenoh-sync"
+SRCREV_zenoh-sync = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-sync"
+SRCREV_FORMAT .= "_zenoh-transport"
+SRCREV_zenoh-transport = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-transport"
+SRCREV_FORMAT .= "_zenoh-util"
+SRCREV_zenoh-util = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+EXTRA_OECARGO_PATHS += "${WORKDIR}/zenoh-util"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=530d837aca648e45704db71dedff39c4"
+
+SUMMARY = "The zenoh C client API"
+HOMEPAGE = "http://zenoh.io"
+LICENSE = "EPL-2.0 & Apache-2.0"
+
+include zenoh-c.inc
diff --git a/meta-oniro-staging/recipes-connectivity/zenoh/zenohd.inc b/meta-oniro-staging/recipes-connectivity/zenoh/zenohd.inc
new file mode 100644
index 0000000000000000000000000000000000000000..d15344ab6d1b417ed8e7f5bcbc68aab1e1569b97
--- /dev/null
+++ b/meta-oniro-staging/recipes-connectivity/zenoh/zenohd.inc
@@ -0,0 +1,15 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+SRC_URI += "file://Cargo.toml-do-not-abort-on-panic.patch"
+
+# this is needed because the libraries are unversioned
+SOLIBS = ".so"
+FILES_SOLIBSDEV = ""
+
+do_install:append() {
+    # meta-rust installs the libraries in rust directory, moving them to ${libdir}
+    mv ${D}${libdir}/rust/*.so ${D}${libdir}/
+    rm -rf ${D}${libdir}/rust
+}
diff --git a/meta-oniro-staging/recipes-connectivity/zenoh/zenohd_git.bb b/meta-oniro-staging/recipes-connectivity/zenoh/zenohd_git.bb
new file mode 100644
index 0000000000000000000000000000000000000000..f389d734c342399e65ce234c5b680739f1df1380
--- /dev/null
+++ b/meta-oniro-staging/recipes-connectivity/zenoh/zenohd_git.bb
@@ -0,0 +1,354 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+# Auto-Generated by cargo-bitbake 0.3.15
+#
+inherit cargo
+
+SRC_URI += "git://github.com/eclipse-zenoh/zenoh.git;protocol=https;nobranch=1"
+SRCREV = "1e30ea5730b6a57afb1be107b209d413559f2db8"
+S = "${WORKDIR}/git"
+CARGO_SRC_DIR = ""
+PV:append = ".AUTOINC+1e30ea5730"
+
+SRC_URI += " \
+    crate://crates.io/aead/0.3.2 \
+    crate://crates.io/aes-gcm/0.8.0 \
+    crate://crates.io/aes-soft/0.6.4 \
+    crate://crates.io/aes/0.6.0 \
+    crate://crates.io/aes/0.7.5 \
+    crate://crates.io/aesni/0.10.0 \
+    crate://crates.io/aho-corasick/0.7.18 \
+    crate://crates.io/ansi_term/0.12.1 \
+    crate://crates.io/anyhow/1.0.53 \
+    crate://crates.io/arrayref/0.3.6 \
+    crate://crates.io/arrayvec/0.5.2 \
+    crate://crates.io/async-attributes/1.1.2 \
+    crate://crates.io/async-channel/1.6.1 \
+    crate://crates.io/async-dup/1.2.2 \
+    crate://crates.io/async-executor/1.4.1 \
+    crate://crates.io/async-global-executor/2.0.2 \
+    crate://crates.io/async-h1/2.3.3 \
+    crate://crates.io/async-io/1.6.0 \
+    crate://crates.io/async-lock/2.4.0 \
+    crate://crates.io/async-mutex/1.4.0 \
+    crate://crates.io/async-process/1.3.0 \
+    crate://crates.io/async-rustls/0.2.0 \
+    crate://crates.io/async-session/2.0.1 \
+    crate://crates.io/async-sse/4.1.0 \
+    crate://crates.io/async-std/1.10.0 \
+    crate://crates.io/async-task/4.1.0 \
+    crate://crates.io/async-trait/0.1.52 \
+    crate://crates.io/atomic-waker/1.0.0 \
+    crate://crates.io/atty/0.2.14 \
+    crate://crates.io/autocfg/0.1.8 \
+    crate://crates.io/autocfg/1.1.0 \
+    crate://crates.io/base-x/0.2.8 \
+    crate://crates.io/base64/0.12.3 \
+    crate://crates.io/base64/0.13.0 \
+    crate://crates.io/base64ct/1.1.1 \
+    crate://crates.io/bincode/1.3.3 \
+    crate://crates.io/bitflags/1.3.2 \
+    crate://crates.io/blake3/0.3.8 \
+    crate://crates.io/block-buffer/0.7.3 \
+    crate://crates.io/block-buffer/0.9.0 \
+    crate://crates.io/block-padding/0.1.5 \
+    crate://crates.io/block-padding/0.2.1 \
+    crate://crates.io/blocking/1.1.0 \
+    crate://crates.io/bstr/0.2.17 \
+    crate://crates.io/bumpalo/3.9.1 \
+    crate://crates.io/byte-tools/0.3.1 \
+    crate://crates.io/byteorder/1.4.3 \
+    crate://crates.io/bytes/1.1.0 \
+    crate://crates.io/cache-padded/1.2.0 \
+    crate://crates.io/cast/0.2.7 \
+    crate://crates.io/cc/1.0.73 \
+    crate://crates.io/cfg-if/0.1.10 \
+    crate://crates.io/cfg-if/1.0.0 \
+    crate://crates.io/chrono/0.4.19 \
+    crate://crates.io/cipher/0.2.5 \
+    crate://crates.io/cipher/0.3.0 \
+    crate://crates.io/clap/2.34.0 \
+    crate://crates.io/concurrent-queue/1.2.2 \
+    crate://crates.io/const-oid/0.6.2 \
+    crate://crates.io/const_fn/0.4.9 \
+    crate://crates.io/constant_time_eq/0.1.5 \
+    crate://crates.io/convert_case/0.4.0 \
+    crate://crates.io/cookie/0.14.4 \
+    crate://crates.io/core-foundation-sys/0.8.3 \
+    crate://crates.io/core-foundation/0.9.3 \
+    crate://crates.io/cpufeatures/0.2.1 \
+    crate://crates.io/cpuid-bool/0.2.0 \
+    crate://crates.io/criterion-plot/0.4.4 \
+    crate://crates.io/criterion/0.3.5 \
+    crate://crates.io/crossbeam-channel/0.5.2 \
+    crate://crates.io/crossbeam-deque/0.8.1 \
+    crate://crates.io/crossbeam-epoch/0.9.7 \
+    crate://crates.io/crossbeam-utils/0.8.7 \
+    crate://crates.io/crypto-bigint/0.2.11 \
+    crate://crates.io/crypto-mac/0.10.1 \
+    crate://crates.io/crypto-mac/0.11.1 \
+    crate://crates.io/crypto-mac/0.8.0 \
+    crate://crates.io/csv-core/0.1.10 \
+    crate://crates.io/csv/1.1.6 \
+    crate://crates.io/ct-logs/0.8.0 \
+    crate://crates.io/ctor/0.1.21 \
+    crate://crates.io/ctr/0.6.0 \
+    crate://crates.io/dashmap/4.0.2 \
+    crate://crates.io/der/0.4.5 \
+    crate://crates.io/derive_more/0.99.17 \
+    crate://crates.io/digest/0.8.1 \
+    crate://crates.io/digest/0.9.0 \
+    crate://crates.io/dirs-next/2.0.0 \
+    crate://crates.io/dirs-sys-next/0.1.2 \
+    crate://crates.io/discard/1.0.4 \
+    crate://crates.io/either/1.6.1 \
+    crate://crates.io/env_logger/0.9.0 \
+    crate://crates.io/event-listener/2.5.2 \
+    crate://crates.io/fake-simd/0.1.2 \
+    crate://crates.io/fastrand/1.7.0 \
+    crate://crates.io/femme/2.1.1 \
+    crate://crates.io/fixedbitset/0.4.1 \
+    crate://crates.io/flume/0.10.11 \
+    crate://crates.io/form_urlencoded/1.0.1 \
+    crate://crates.io/futures-channel/0.3.21 \
+    crate://crates.io/futures-core/0.3.21 \
+    crate://crates.io/futures-executor/0.3.21 \
+    crate://crates.io/futures-io/0.3.21 \
+    crate://crates.io/futures-lite/1.12.0 \
+    crate://crates.io/futures-macro/0.3.21 \
+    crate://crates.io/futures-sink/0.3.21 \
+    crate://crates.io/futures-task/0.3.21 \
+    crate://crates.io/futures-util/0.3.21 \
+    crate://crates.io/futures/0.3.21 \
+    crate://crates.io/generic-array/0.12.4 \
+    crate://crates.io/generic-array/0.14.5 \
+    crate://crates.io/getrandom/0.1.16 \
+    crate://crates.io/getrandom/0.2.4 \
+    crate://crates.io/ghash/0.3.1 \
+    crate://crates.io/git-version-macro/0.3.5 \
+    crate://crates.io/git-version/0.3.5 \
+    crate://crates.io/glob/0.3.0 \
+    crate://crates.io/gloo-timers/0.2.3 \
+    crate://crates.io/half/1.8.2 \
+    crate://crates.io/hashbrown/0.11.2 \
+    crate://crates.io/hermit-abi/0.1.19 \
+    crate://crates.io/hex/0.4.3 \
+    crate://crates.io/hkdf/0.10.0 \
+    crate://crates.io/hmac/0.10.1 \
+    crate://crates.io/hmac/0.11.0 \
+    crate://crates.io/hmac/0.8.1 \
+    crate://crates.io/home/0.5.3 \
+    crate://crates.io/http-client/6.5.1 \
+    crate://crates.io/http-types/2.12.0 \
+    crate://crates.io/httparse/1.6.0 \
+    crate://crates.io/humantime/2.1.0 \
+    crate://crates.io/idna/0.2.3 \
+    crate://crates.io/indexmap/1.8.0 \
+    crate://crates.io/infer/0.2.3 \
+    crate://crates.io/instant/0.1.12 \
+    crate://crates.io/ipnetwork/0.18.0 \
+    crate://crates.io/itertools/0.10.3 \
+    crate://crates.io/itoa/0.4.8 \
+    crate://crates.io/itoa/1.0.1 \
+    crate://crates.io/js-sys/0.3.56 \
+    crate://crates.io/json5/0.4.1 \
+    crate://crates.io/keccak/0.1.0 \
+    crate://crates.io/kv-log-macro/1.0.7 \
+    crate://crates.io/lazy_static/1.4.0 \
+    crate://crates.io/libc/0.2.118 \
+    crate://crates.io/libloading/0.7.3 \
+    crate://crates.io/libm/0.2.2 \
+    crate://crates.io/linked-hash-map/0.5.4 \
+    crate://crates.io/lock_api/0.4.6 \
+    crate://crates.io/log/0.4.14 \
+    crate://crates.io/maplit/1.0.2 \
+    crate://crates.io/matches/0.1.9 \
+    crate://crates.io/memchr/2.4.1 \
+    crate://crates.io/memoffset/0.6.5 \
+    crate://crates.io/mio/0.7.14 \
+    crate://crates.io/mio/0.8.0 \
+    crate://crates.io/miow/0.3.7 \
+    crate://crates.io/nanorand/0.6.1 \
+    crate://crates.io/nix/0.22.3 \
+    crate://crates.io/nix/0.23.1 \
+    crate://crates.io/ntapi/0.3.7 \
+    crate://crates.io/num-bigint-dig/0.7.0 \
+    crate://crates.io/num-integer/0.1.44 \
+    crate://crates.io/num-iter/0.1.42 \
+    crate://crates.io/num-traits/0.2.14 \
+    crate://crates.io/num_cpus/1.13.1 \
+    crate://crates.io/once_cell/1.9.0 \
+    crate://crates.io/oorandom/11.1.3 \
+    crate://crates.io/opaque-debug/0.2.3 \
+    crate://crates.io/opaque-debug/0.3.0 \
+    crate://crates.io/openssl-probe/0.1.5 \
+    crate://crates.io/ordered-float/2.10.0 \
+    crate://crates.io/parking/2.0.0 \
+    crate://crates.io/paste/1.0.6 \
+    crate://crates.io/pem-rfc7468/0.2.4 \
+    crate://crates.io/pem/1.0.2 \
+    crate://crates.io/percent-encoding/2.1.0 \
+    crate://crates.io/pest/2.1.3 \
+    crate://crates.io/pest_derive/2.1.0 \
+    crate://crates.io/pest_generator/2.1.3 \
+    crate://crates.io/pest_meta/2.1.3 \
+    crate://crates.io/petgraph/0.6.0 \
+    crate://crates.io/pin-project-internal/1.0.10 \
+    crate://crates.io/pin-project-lite/0.1.12 \
+    crate://crates.io/pin-project-lite/0.2.8 \
+    crate://crates.io/pin-project/1.0.10 \
+    crate://crates.io/pin-utils/0.1.0 \
+    crate://crates.io/pkcs1/0.2.4 \
+    crate://crates.io/pkcs8/0.7.6 \
+    crate://crates.io/plotters-backend/0.3.2 \
+    crate://crates.io/plotters-svg/0.3.1 \
+    crate://crates.io/plotters/0.3.1 \
+    crate://crates.io/pnet/0.28.0 \
+    crate://crates.io/pnet_base/0.28.0 \
+    crate://crates.io/pnet_datalink/0.28.0 \
+    crate://crates.io/pnet_macros/0.28.0 \
+    crate://crates.io/pnet_macros_support/0.28.0 \
+    crate://crates.io/pnet_packet/0.28.0 \
+    crate://crates.io/pnet_sys/0.28.0 \
+    crate://crates.io/pnet_transport/0.28.0 \
+    crate://crates.io/polling/2.2.0 \
+    crate://crates.io/polyval/0.4.5 \
+    crate://crates.io/ppv-lite86/0.2.16 \
+    crate://crates.io/proc-macro-hack/0.5.19 \
+    crate://crates.io/proc-macro2/1.0.36 \
+    crate://crates.io/quinn-proto/0.7.3 \
+    crate://crates.io/quinn/0.7.2 \
+    crate://crates.io/quote/1.0.15 \
+    crate://crates.io/rand/0.7.3 \
+    crate://crates.io/rand/0.8.5 \
+    crate://crates.io/rand_chacha/0.2.2 \
+    crate://crates.io/rand_chacha/0.3.1 \
+    crate://crates.io/rand_core/0.5.1 \
+    crate://crates.io/rand_core/0.6.3 \
+    crate://crates.io/rand_hc/0.2.0 \
+    crate://crates.io/rayon-core/1.9.1 \
+    crate://crates.io/rayon/1.5.1 \
+    crate://crates.io/rcgen/0.8.14 \
+    crate://crates.io/redox_syscall/0.2.10 \
+    crate://crates.io/redox_users/0.4.0 \
+    crate://crates.io/regex-automata/0.1.10 \
+    crate://crates.io/regex-syntax/0.6.25 \
+    crate://crates.io/regex/1.5.4 \
+    crate://crates.io/ring/0.16.20 \
+    crate://crates.io/route-recognizer/0.2.0 \
+    crate://crates.io/rsa/0.5.0 \
+    crate://crates.io/rustc_version/0.2.3 \
+    crate://crates.io/rustc_version/0.4.0 \
+    crate://crates.io/rustls-native-certs/0.5.0 \
+    crate://crates.io/rustls/0.19.1 \
+    crate://crates.io/ryu/1.0.9 \
+    crate://crates.io/same-file/1.0.6 \
+    crate://crates.io/schannel/0.1.19 \
+    crate://crates.io/scopeguard/1.1.0 \
+    crate://crates.io/sct/0.6.1 \
+    crate://crates.io/security-framework-sys/2.6.1 \
+    crate://crates.io/security-framework/2.6.1 \
+    crate://crates.io/semver-parser/0.7.0 \
+    crate://crates.io/semver/0.9.0 \
+    crate://crates.io/semver/1.0.5 \
+    crate://crates.io/serde/1.0.136 \
+    crate://crates.io/serde_cbor/0.11.2 \
+    crate://crates.io/serde_derive/1.0.136 \
+    crate://crates.io/serde_json/1.0.79 \
+    crate://crates.io/serde_qs/0.8.5 \
+    crate://crates.io/serde_urlencoded/0.7.1 \
+    crate://crates.io/serde_yaml/0.8.23 \
+    crate://crates.io/sha-1/0.8.2 \
+    crate://crates.io/sha1/0.6.1 \
+    crate://crates.io/sha1_smol/1.0.0 \
+    crate://crates.io/sha2/0.9.9 \
+    crate://crates.io/sha3/0.9.1 \
+    crate://crates.io/shared_memory/0.12.0 \
+    crate://crates.io/shellexpand/2.1.0 \
+    crate://crates.io/signal-hook-registry/1.4.0 \
+    crate://crates.io/signal-hook/0.3.13 \
+    crate://crates.io/simple-mutex/1.1.5 \
+    crate://crates.io/slab/0.4.5 \
+    crate://crates.io/smallvec/1.8.0 \
+    crate://crates.io/socket2/0.3.19 \
+    crate://crates.io/socket2/0.4.4 \
+    crate://crates.io/spin/0.5.2 \
+    crate://crates.io/spin/0.9.2 \
+    crate://crates.io/spki/0.4.1 \
+    crate://crates.io/standback/0.2.17 \
+    crate://crates.io/stdweb-derive/0.5.3 \
+    crate://crates.io/stdweb-internal-macros/0.2.9 \
+    crate://crates.io/stdweb-internal-runtime/0.1.5 \
+    crate://crates.io/stdweb/0.4.20 \
+    crate://crates.io/stop-token/0.7.0 \
+    crate://crates.io/strsim/0.8.0 \
+    crate://crates.io/subtle/2.4.1 \
+    crate://crates.io/sval/1.0.0-alpha.5 \
+    crate://crates.io/syn/1.0.86 \
+    crate://crates.io/synstructure/0.12.6 \
+    crate://crates.io/termcolor/1.1.2 \
+    crate://crates.io/textwrap/0.11.0 \
+    crate://crates.io/thiserror-impl/1.0.30 \
+    crate://crates.io/thiserror/1.0.30 \
+    crate://crates.io/tide/0.16.0 \
+    crate://crates.io/time-macros-impl/0.1.2 \
+    crate://crates.io/time-macros/0.1.1 \
+    crate://crates.io/time/0.1.43 \
+    crate://crates.io/time/0.2.27 \
+    crate://crates.io/tinytemplate/1.2.1 \
+    crate://crates.io/tinyvec/1.5.1 \
+    crate://crates.io/tinyvec_macros/0.1.0 \
+    crate://crates.io/tokio/1.17.0 \
+    crate://crates.io/tracing-attributes/0.1.19 \
+    crate://crates.io/tracing-core/0.1.22 \
+    crate://crates.io/tracing/0.1.30 \
+    crate://crates.io/typenum/1.15.0 \
+    crate://crates.io/ucd-trie/0.1.3 \
+    crate://crates.io/uhlc/0.4.1 \
+    crate://crates.io/unicode-bidi/0.3.7 \
+    crate://crates.io/unicode-normalization/0.1.19 \
+    crate://crates.io/unicode-width/0.1.9 \
+    crate://crates.io/unicode-xid/0.2.2 \
+    crate://crates.io/universal-hash/0.4.1 \
+    crate://crates.io/untrusted/0.7.1 \
+    crate://crates.io/unzip-n/0.1.2 \
+    crate://crates.io/url/2.2.2 \
+    crate://crates.io/uuid/0.8.2 \
+    crate://crates.io/validated_struct/0.1.11 \
+    crate://crates.io/validated_struct_macros/0.1.10 \
+    crate://crates.io/value-bag/1.0.0-alpha.8 \
+    crate://crates.io/vec_map/0.8.2 \
+    crate://crates.io/version_check/0.9.4 \
+    crate://crates.io/waker-fn/1.1.0 \
+    crate://crates.io/walkdir/2.3.2 \
+    crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
+    crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \
+    crate://crates.io/wasm-bindgen-backend/0.2.79 \
+    crate://crates.io/wasm-bindgen-futures/0.4.29 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.79 \
+    crate://crates.io/wasm-bindgen-macro/0.2.79 \
+    crate://crates.io/wasm-bindgen-shared/0.2.79 \
+    crate://crates.io/wasm-bindgen/0.2.79 \
+    crate://crates.io/web-sys/0.3.56 \
+    crate://crates.io/webpki/0.21.4 \
+    crate://crates.io/webpki/0.22.0 \
+    crate://crates.io/wepoll-ffi/0.1.2 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi-util/0.1.5 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi/0.3.9 \
+    crate://crates.io/yaml-rust/0.4.5 \
+    crate://crates.io/yasna/0.4.0 \
+    crate://crates.io/zeroize/1.4.3 \
+    crate://crates.io/zeroize_derive/1.3.1 \
+"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=530d837aca648e45704db71dedff39c4"
+
+SUMMARY = "Zenoh: Zero Overhead Pub/sub, Store/Query and Compute."
+HOMEPAGE = "http://zenoh.io"
+LICENSE = "EPL-2.0 & Apache-2.0"
+
+include zenohd.inc