All Projects → atolab → zhe

atolab / zhe

Licence: Apache-2.0 License
Lighter-than-air, peer-to-peer, bounded, non-blocking, non-threaded, etc., publish-subscribe networking

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
TeX
3793 projects
haskell
3896 projects
perl
6916 projects
CMake
9771 projects
Makefile
30231 projects

Projects that are alternatives of or similar to zhe

Micro-XRCE-DDS-Agent
Micro XRCE-DDS Agent respository
Stars: ✭ 58 (+31.82%)
Mutual labels:  low-latency, dds, ros2, low-power
mros2
agent-less and lightweight communication library compatible with rclcpp for embedded devices
Stars: ✭ 72 (+63.64%)
Mutual labels:  embedded, dds, ros2
Blinker Library
An IoT Solution,Blinker library for embedded hardware. Works with Arduino, ESP8266, ESP32.
Stars: ✭ 1,095 (+2388.64%)
Mutual labels:  embedded, ble
rclshark
Tool for ROS 2 IP Discovery + System Monitoring
Stars: ✭ 32 (-27.27%)
Mutual labels:  dds, ros2
Micro Xrce Dds Client
Micro XRCE-DDS Client repository
Stars: ✭ 30 (-31.82%)
Mutual labels:  embedded, low-latency
NuttX
Official micro-ROS RTOS
Stars: ✭ 63 (+43.18%)
Mutual labels:  embedded, ros2
Blinker Py
Blinker python library for hardware. Works with Raspberry Pi, Banan Pi, Linux devices
Stars: ✭ 680 (+1445.45%)
Mutual labels:  embedded, ble
DDS-Router
The DDS Router is an application developed by eProsima that allows, using Fast DDS, to communicate by DDS protocol different networks.
Stars: ✭ 34 (-22.73%)
Mutual labels:  dds, ros2
prophesee ros wrapper
ROS driver for Prophesee event-based sensors
Stars: ✭ 63 (+43.18%)
Mutual labels:  low-latency, low-power
IOsonata
IOsonata multi-platform multi-architecture power & performance optimized software library for fast and easy IoT MCU firmware development. Object Oriented design, no board package to define, just pure plug & play any boards
Stars: ✭ 40 (-9.09%)
Mutual labels:  embedded, ble
zenoh-plugin-dds
A zenoh plug-in that allows to transparently route DDS data. This plugin can be used by DDS applications, such as ROS2 robotic applications and others, to leverage the zenoh for geographical routing or for better scaling discovery.
Stars: ✭ 60 (+36.36%)
Mutual labels:  dds, ros2
nixos-on-arm
Cross Compiling NixOS to ARM as a replacement for Yocto
Stars: ✭ 129 (+193.18%)
Mutual labels:  embedded
irq
Utilities for Interrupt handling
Stars: ✭ 12 (-72.73%)
Mutual labels:  embedded
pollnet
A collection of non-blocking(polling) network libs for Linux, also support solarflare APIs(Tcpdirect/Efvi)
Stars: ✭ 98 (+122.73%)
Mutual labels:  low-latency
EmbeddedTools
Additions to the model-based DSL for deploying Java and Native projects to remote targets
Stars: ✭ 14 (-68.18%)
Mutual labels:  embedded
ArduinoSpritzCipher
Spritz encryption system portable C library, CSPRNG, cryptographic hash and MAC functions, symmetric-key data encryption, and general-purpose functions. It's also an Arduino library.
Stars: ✭ 67 (+52.27%)
Mutual labels:  embedded
NinjaCalc
An embedded engineering calculator toolbox for doing calculations in a breeze.
Stars: ✭ 14 (-68.18%)
Mutual labels:  embedded
SMARTmBOT
The goal of this repository is to introduce a new, customizable, scalable, and fully opensource mobile robot platform, called SMARTmBOT. This repository provides a guide, and all design files and source codes so that you can build your own SMARTmBOT. SMARTmBOT can be useful for studying the basics of robotics, especially mobile robotics. It can …
Stars: ✭ 29 (-34.09%)
Mutual labels:  ros2
gpib-usbcdc
Interface bridge between GPIB and USB communication device class
Stars: ✭ 81 (+84.09%)
Mutual labels:  embedded
lv lib rlottie
Lottie animation support for LVGL
Stars: ✭ 16 (-63.64%)
Mutual labels:  embedded

This is the old proof-of-concept for Zenoh. It still offers some interesting tricks, but it doesn't even come close to giving you all you get with the new Zenoh. Chances are you're looking for https://github.com/eclipse-zenoh/zenoh-pico. But if perchance you are looking for a proof-of-concept of a peer-to-peer publish-subscribe system without any call to malloc or free, then do read on.

Zeno-He (zhe for short) is a compact implementation of the Zenoh protocol that does not depend on dynamic allocation or threading. Instead, it is a non-blocking implementation that assumes single threaded use with polling, and a system that can be sized at compile time. Zhe can be configured to operate in peer-to-peer mode or to operate as a client that relies on a broker.

Targeted configurations vary from a minimal client on an Arduino Uno (an 8-bit CPU with only 2kB of RAM) to a bunch of low-power, high-integrity CPUs running a real-time, distributed control system, and on to dozens of peers running on high-end CPUs and saturating a fast network. Whether it will actually meet all these requirements remains to be seen. Still, so far, so good.

Zhe does not call any operating system functions directly (its use of the standard library is currently limited to mem*, strlen and isalnum). It does rely on a small abstraction layer for sending a message without blocking (it may of course be dropped), comparing addresses and converting an address to text. What constitutes sending data on a network or what an address looks like is deliberately left undefined.

Please note that it is currently a research project under active development. Only the basic functionality supported by the Zenoh protocol has so far been implemented, and still missing are several features we consider important, such as selections and transient data support. These will be implemented in the near future. Furthermore, none of the settings are final, and everything can (and probably will) still change.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].