Git Product home page Git Product logo

tezheng / berty Goto Github PK

View Code? Open in Web Editor NEW

This project forked from berty/berty

0.0 0.0 0.0 104.01 MB

Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network

Home Page: https://berty.tech

License: Other

Makefile 1.27% Go 56.63% JavaScript 3.92% Dockerfile 0.10% Shell 2.39% TypeScript 27.55% Ruby 0.14% Java 4.95% Objective-C 2.13% HTML 0.21% C 0.01% Swift 0.65% Starlark 0.02% CSS 0.03% Python 0.01%

berty's Introduction

Berty

๐Ÿ’ฌ Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network

berty.tech discord github twitter

GoDoc GitHub release CodeFactor


Introduction

Berty is an anonymous, secure, peer-to-peer protocol that doesn't need an internet connection to function.

There is a protocol that uses advanced cryptography and a messenger app that is built on top of the protocol.

  • No phone number or email required to create an account
  • End-to-end encryption used to encrypt all conversations
  • Focus on leaking as little metadata as possible
  • Decentralized, distributed, serverless
  • No consensus, no blockchain
  • No internet connection required (uses the BLE technology and mDNS)
  • Free forever, no data stored, transparent code, open-source

Berty is currently developed by Berty Technologies, a French non-profit organization.

Usages:

  • When you need to share sensitive information.
  • If you want to communicate with good anonymity.
  • If you don't want to use servers, because you want full control of your data.
  • In countries that have censorship and restrict network access and usage.
  • In areas with weak or no connection or cell reception.
  • When you travel and you want to communicate safely through insecure public connections.

Note: the project is made by a small team of humans who are not experts and who make mistakes. Please, do not hesitate to point out if you notice a bug or something missing. See the contribute section below.

We cannot promise to give you the best app, but we can commit to doing our best in that direction.

Development Status

Berty is still under active development and should not be used to exchange important data.

The current Berty Messenger implementation is using the Berty Protocol. Which means the encryption is safe and it's a P2P app! Berty Messenger has not been hardened yet so avoid using it on devices with weak sandboxes. If you're trying to roll your own app based on the protocol, beware that the app layer protocols used by Berty Messenger might change in the future.

The current Berty Protocol is partially implemented. The API will certainly change in a near future, so be prepared to have breaking changes if you start using it right now.

We will open betas for the different packages and apps soon, so anyone will be able to give it a try even without the coding skills. Subscribe to our newsletter if you want to be notified.

Note: this is an ongoing work. The repos are being opened progressively, and there will be more changes and updates.

Under the hood

Berty Protocol

go.dev reference Code coverage

A generic SDK that allows developers to write P2P applications. It contains everything needed (encryption, identities, network routing, group management, account management, device management, application lifecycle) so you can just focus on the high-level features of your app.

The main concept of the Berty Protocol is the "group", a virtual place where multiple devices can share messages and metadata using OrbitDB, which itself relies on IPFS.

Get it:

git clone https://github.com/berty/berty

Berty Messenger

Code coverage

A messenger application written in React Native, that uses the Berty Protocol using gomobile-ipfs, which, in its turn, is using gomobile.

Main items in the repo

  • ./go: Where all the Golang code belongs.
  • ./js: Where all the Javascript/Typescript code belongs, containing:
    • The Berty Messenger application, written in React Native.
  • ./docs: Mostly auto-generated documentation.

Philosophy

We want to contribute to the world of free, secure communication without fear of censorship and surveillance.

Open source is more secure, since anyone can examine the code, improve it and maintain it. Our ultimate goal is to completely lose control of Berty and have it evolve as a global community project.

More info on berty/community.

Install

Mobile

To compile and run the mobile app on your device, see js/README.md.

CLI

You can go run or go install the CLI tool located in go/cmd/berty. The two main commands are:

  • berty mini: CLI messenger app using Berty Protocol.
  • berty daemon: full node manageable through Berty Protocol API.

Contributing

Contribute to Berty

We really welcome contributions. Your input is the most precious material. We're well aware of that and we thank you in advance. Everyone is encouraged to look at what they can do on their own scale; no effort is too small.

There are plenty of ways to get involved and act for our community. It has been divided into two distinct parts: everything that is related to the code and everything that is not.

To put it very simply:

  • Code-related = Github
  • Not code-related = Open task

Everything on contribution is sum up here: CONTRIBUTING.MD

Stargazers over time

Stargazers over time

Other resources

Contact

Take a look at our community repo.

See all our available contact methods on the contact page of our website.

Licensing

ยฉ 2018-2021 Berty Technologies h0

Licensed under the Apache License, Version 2.0 (LICENSE-APACHE) or the MIT license (LICENSE-MIT), at your option. See the COPYRIGHT file for more details.

berty's People

Contributors

90dy avatar aeddi avatar alexsland avatar berty-assistant avatar cdeleeuwe avatar clegirar avatar d4ryl00 avatar d4ryl00-sudo avatar dependabot[bot] avatar ekelen avatar gfanton avatar glouvigny avatar hubub avatar imgbotapp avatar jembijemb avatar jorropo avatar luzpaz avatar moul avatar moul-sudo avatar n0izn0iz avatar nkemcels avatar phanhuynhquy avatar pierreboc avatar sakul-budhathoki avatar sfroment avatar snyk-bot avatar stickler-ci avatar uolguolg avatar zachoooo avatar zxxma avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.