From 4c23e439f08700d850d482f0f1c79e028c79d087 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Fri, 11 Jan 2019 20:46:31 +0000 Subject: [PATCH] First cut at 1.0 README --- README.md | 49 +++++++------------------------------------------ 1 file changed, 7 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 9509f8c..c1524d2 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,16 @@ -# libricochet-go [![Build Status](https://travis-ci.org/s-rah/go-ricochet.svg?branch=master)](https://travis-ci.org/s-rah/go-ricochet) [![Go Report Card](https://goreportcard.com/badge/github.com/s-rah/go-ricochet)](https://goreportcard.com/report/github.com/s-rah/go-ricochet) [![Coverage Status](https://coveralls.io/repos/github/s-rah/go-ricochet/badge.svg?branch=master)](https://coveralls.io/github/s-rah/go-ricochet?branch=master) +# libricochet-go [![Go Report Card](https://goreportcard.com/badge/git.openprivacy.ca/openprivacy/libricochet-go)](https://goreportcard.com/report/git.openprivacy.ca/openprivacy/libricochet-go) libricochet-go is an experimental implementation of the [Ricochet Protocol](https://ricochet.im) -in Go. +written in Go. -## Features +## Differences to Ricochet IM -* A simple API that you can use to build Automated Ricochet Applications -* A suite of regression tests that test protocol compliance. +* *V3 Onion Support* - libricochet-go updates the Ricochet protocol to use V3 tor onion service addresses, and implements a new authentication protocol providing greater deniability. +* *Library* - libricochet-go is designed to be integrated within your application, allowing your application to communicate with other peers or programs in a way that is privacy preserving and metadata resistant. -## Building an Automated Ricochet Application +## Using libricochet-go -Below is a simple echo bot, which responds to any chat message. You can also find this code under `examples/echobot` - - package main - - import ( - "git.openprivacy.ca/openprivacy/libricochet-go/application" - "git.openprivacy.ca/openprivacy/libricochet-go/utils" - "log" - "time" - ) - - func main() { - echobot := new(application.RicochetApplication) - pk, err := utils.LoadPrivateKeyFromFile("./private_key") - - if err != nil { - log.Fatalf("error reading private key file: %v", err) - } - - l, err := application.SetupOnion("127.0.0.1:9051", "tcp4", "", pk, 9878) - - if err != nil { - log.Fatalf("error setting up onion service: %v", err) - } - - echobot.Init(pk, new(application.AcceptAllContactManager)) - echobot.OnChatMessage(func(rai *application.RicochetApplicationInstance, id uint32, timestamp time.Time, message string) { - log.Printf("message from %v - %v", rai.RemoteHostname, message) - rai.SendChatMessage(message) - }) - log.Printf("echobot listening on %s", l.Addr().String()) - echobot.Run(l) - } - -Each automated ricochet service can extend of the `StandardRicochetService`. From there -certain functions can be extended to fully build out a complete application. +Checkout our [EchoBot Example](https://git.openprivacy.ca/openprivacy/libricochet-go/src/master/application/examples/echobot) to get started. ## Security and Usage Note