LoRes Mesh

LoRes P2Panda Client

README

Rust client for the lores-p2panda-server gRPC API.

What is this?

LoRes Mesh (short for Local Resilience Mesh) is a project to provide a network of local servers in your community. It is an example of Neighbourhood-first Software.

In LoRes, each server hosts web software using recipes from Co-op Cloud. Additionally, servers are in peer-to-peer communication with each other using P2Panda. This P2P network of servers provides a redundant local infrastructure at key points around the neighbourhood that could be made to stay online in a power or internet outage.

Each server in a LoRes Mesh has a management app installed, called LoRes Node. This app runs the P2Panda node and manages communication with other servers. In order to allow other apps on the server to communicate with each other over the P2Panda network, it also provides a gRPC API.

The Lores P2Panda Server gRPC API

The Lores P2Panda Server is designed to be accessed by apps running on the same docker network. Given that, it has no access protection.

Proto definitions for this server can be found in panda.proto.

This library is a thin wrapper around a generated client for these protos.

License

This library is licensed under The Anti-Capitalist Software License. This is intended to be a provocation to get us discussing the fact that open source software licencing has not stopped our software from enabling wealth extraction by corporations and billionaires, or from being used to enable wars and genocide.

The Anti-Capitalist license is one example of a license which makes restrictions on use inline with values describing a better world. There are other example licenses that limit other important things, such as harming humans, or use by AI. This one has been picked for this project because it aligned with the values of Co-op Cloud.

Obviously using the Anti-Capitalist license in a library like this intended to be used in other software is almost certainly going to clash with whatever license you need for your application, even potentially with other licenses with more detailed values-based protections against misuse.

If you’re a community run software project that just needs a different license, please have a human drop us a line by filing a github issue and we can sort you out.