forked from openprivacy/libricochet-go
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
5 years ago | |
---|---|---|
Godeps | 6 years ago | |
application | 5 years ago | |
channels | 5 years ago | |
connection | 5 years ago | |
examples/echobot | 5 years ago | |
identity | 5 years ago | |
policies | 5 years ago | |
testing | 5 years ago | |
utils | 5 years ago | |
wire | 5 years ago | |
.gitignore | 7 years ago | |
.travis.yml | 5 years ago | |
CONTRIBUTING.md | 5 years ago | |
LICENSE | 6 years ago | |
README.md | 5 years ago | |
inbound_version_negotiation_test.go | 5 years ago | |
outbound_version_negotiation_test.go | 5 years ago | |
private_key | 7 years ago | |
ricochet.go | 5 years ago | |
ricochet_test.go | 5 years ago | |
testing.md | 5 years ago |
README.md
libricochet-go

libricochet-go is an experimental implementation of the Ricochet Protocol in Go.
Features
- A simple API that you can use to build Automated Ricochet Applications
- A suite of regression tests that test protocol compliance.
Building an Automated Ricochet Application
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.
Security and Usage Note
This project is experimental and has not been independently reviewed. If you are looking for a quick and easy way to use ricochet please check out Ricochet IM.