All Projects → privacylab → talek

privacylab / talek

Licence: BSD-2-Clause license
a Private Publish Subscribe System

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to talek

Vernemq
A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases.
Stars: ✭ 2,628 (+6638.46%)
Mutual labels:  messaging, pubsub
cloudenvoy
Cross-application messaging for Ruby and Rails using Google Cloud Pub/Sub
Stars: ✭ 31 (-20.51%)
Mutual labels:  pubsub, publish-subscribe
Pulsar Manager
Apache Pulsar Manager
Stars: ✭ 247 (+533.33%)
Mutual labels:  messaging, pubsub
Garagemq
AMQP message broker implemented with golang
Stars: ✭ 153 (+292.31%)
Mutual labels:  messaging, pubsub
gobroker
golang wrapper for all (to-be) kinds of message brokers
Stars: ✭ 15 (-61.54%)
Mutual labels:  messaging, pubsub
Tigase Server
Highly optimized, extremely modular and very flexible XMPP/Jabber server
Stars: ✭ 170 (+335.9%)
Mutual labels:  messaging, pubsub
pulsar-flume-ng-sink
An Apache Flume Sink implementation to publish data to Apache pulsar
Stars: ✭ 19 (-51.28%)
Mutual labels:  messaging, pubsub
Emqx
An Open-Source, Cloud-Native, Distributed MQTT Message Broker for IoT.
Stars: ✭ 8,951 (+22851.28%)
Mutual labels:  messaging, pubsub
angular-PubSub
Angular 1.x implementation of the Publish–Subscribe pattern.
Stars: ✭ 32 (-17.95%)
Mutual labels:  pubsub, publish-subscribe
tgip
TGIP (TGI Pulsar) is a weekly live video streaming about Apache Pulsar and its ecosystem.
Stars: ✭ 17 (-56.41%)
Mutual labels:  messaging, pubsub
Dontclickshit
Як не стати кібер-жертвою
Stars: ✭ 149 (+282.05%)
Mutual labels:  messaging, anonymity
payload
A javascript single page application (SPA) driver for REST API payload management.
Stars: ✭ 16 (-58.97%)
Mutual labels:  pubsub, publish-subscribe
Pulsar Dotpulsar
The official .NET client library for Apache Pulsar
Stars: ✭ 101 (+158.97%)
Mutual labels:  messaging, pubsub
Liftbridge
Lightweight, fault-tolerant message streams.
Stars: ✭ 2,175 (+5476.92%)
Mutual labels:  messaging, pubsub
Beaver
💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.
Stars: ✭ 1,056 (+2607.69%)
Mutual labels:  messaging, pubsub
Pulsar Client Go
Apache Pulsar Go Client Library
Stars: ✭ 251 (+543.59%)
Mutual labels:  messaging, pubsub
Libzmq
ZeroMQ core engine in C++, implements ZMTP/3.1
Stars: ✭ 7,418 (+18920.51%)
Mutual labels:  messaging, pubsub
Pulsar
Apache Pulsar - distributed pub-sub messaging system
Stars: ✭ 10,118 (+25843.59%)
Mutual labels:  messaging, pubsub
aop
AMQP on Pulsar protocol handler
Stars: ✭ 93 (+138.46%)
Mutual labels:  messaging, pubsub
uorb
C++ inter-thread publish/subscribe middleware ported from PX4 and redesigned based on POSIX
Stars: ✭ 35 (-10.26%)
Mutual labels:  pubsub, publish-subscribe

Talek

Build Status Coverage Status GoDoc

Talek is a privacy-preserving messaging system. User communication is stored on untrusted systems using PIR.

Getting Started

A basic client can be found at go get github.com/privacylab/talek/cli/talekclient

Talek uses a construct called topic handles. Topics represent a stream of messages from one author to a few readers. The author who creates a topic can provide a handle to it to allow others to "follow along". A longer description of the specific guarantees of a topic are provided in the academic paper linked below.

Basic Usage:

talekclient --config=talek.conf --create --topic=newhandle
talekclient --config=talek.conf --topic=newhandle --write "Hello World"
talekclient --config=talek.conf --topic=newhandle --share=readOnlyHandle
talekclient --config=talek.conf --topic=readOnlyHandle --read

Develop

Pull requests are welcome! Please run all tests (see below) before submitting a PR.

System Dependencies

Depending on which PIR implementation you use, you may need to install OpenCL / CUDA. Make sure you have the latest graphics drivers for your video card.

NVIDIA CUDA:

OpenCL on Ubuntu:

sudo apt-get install -y ocl-icd-libopencl1 ocl-icd-opencl-dev opencl-headers clinfo
sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so /usr/lib/x86_64-linux-gnu/libCL.so

OpenCL on macOS:

  • OpenCL is included in the developer tools. See here

Tools

$ make get-tools

Testing

All tests should pass before submitting a pull request

$ make test

The GPU backings are not built by default. Changes to pir/, where the backing interface may be affected should ensure that code is tested with go test -tags 'cuda,opencl' to include testing of all drivers.

Following Along:

Join the mailing list: https://lists.riseup.net/www/info/talek

Publication

Talek: a Private Publish-Subscribe Protocol.
Raymond Cheng, Will Scott, Bryan Parno, Irene Zhang, Arvind Krishnamurthy, Tom Anderson.
In Submission. 2020.
PDF

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].