Introducing the Wesh Network Toolkit
Tags: web3, protocol, opensource, p2p
Published: 2023-08-25 13:34:21

**Welcome to Wesh!** 

If you have an Internet connection, then there are many tools to communicate with others. But if you’re off grid or the Internet is down, then those tools can’t help you. To solve this and other problems, in 2018 [Berty Technologies](https://berty.tech/about) created a protocol to let you create an identity, join a group and exchange messages all without needing an Internet connection or a central service provider.

Thanks to strong encryption, you control your own identity without needing permission. You can set up or participate in ad-hoc groups while preserving privacy. And data is encrypted as it moves between users through an untrusted environment, whether device-to-device or over the Internet when available.

This protocol powers Berty Messenger which brings these features to mobile phone users. But the need for reliable, privacy-based off-grid communication goes beyond a messaging app. That’s why we’re introducing the open-source [Wesh Network Toolkit](https://wesh.network/) so you can take advantage of the [Wesh protocol](https://berty.tech/docs/protocol) in your own application.

**How will you use Wesh?**

For maximum flexibility, your application interfaces to Wesh based on [gRPC](https://grpc.io/), a well-supported framework which sends and receives Google Protobuf messages.
Even though the [core Wesh code](https://github.com/berty/weshnet) is written in Go, gRPC messages are language-independent. So, Wesh works with your existing application written in Go, Python, Java, C++ or [other supported languages](https://grpc.io/docs/languages/).
gRPC works with the Buf schema registry where we publish the [Wesh API](https://buf.build/berty/weshnet). For example, this documents the request and reply to r[etrieve information about a group.](https://buf.build/berty/weshnet/docs/main:weshnet.protocol.v1#weshnet.protocol.v1.ProtocolService.GroupInfo)
gRPC allows different calling interfaces. The messages can be sent as if Wesh is a library linked directly to your application. Or if your application environment requires it, then API messages can be sent over TCP to a Wesh toolkit running on a local or remote server.

**The “Wesh” name**

You may be wondering what “Wesh” means. It’s a variant of “mesh” to highlight its asynchronous mesh communication which can use any device to securely store a message for a disconnected group member and deliver it when they connect again. (”Wesh” is also slang for “hi” in the French hip hop scene.)
What’s next?
This was a short and sweet introduction to Wesh. In future posts, we’ll dive into how Wesh is organized by users and groups, how to get started with the code, some example applications and more. Stay tuned!

**Links**
https://wesh.network The main Wesh Network Toolkit web page
https://github.com/berty/weshnet The Wesh GitHub repo for code and issues
https://berty.tech/docs/protocol The Wesh protocol white paper
https://buf.build/berty/weshnet The Wesh API at the Buf schema registry
https://berty.tech/about About Berty Technologies, the NGO working with the open-source community to make all this real