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

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.

Owner
Berty Technologies
Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network.
Berty Technologies
Comments
  • [R&D] protocol architecture and roadmap definition

    [R&D] protocol architecture and roadmap definition

    Part 1 (notes by glouvigny): https://hackmd.io/5JWvl009SmmA_bmbm21OtQ

    • overview on different Berty protocol parts and concepts
    • listed methods needed by chat component/brick and started to list the methods needed by protocol

    Work remaining:

    • finish to list methods needed by protocol component/brick
    • prioritize features with priority level label (P0, P1, P2, etc...)
    • prioritize underlying methods
    • estimate implementation time for high priority methods

    Bonus:

    • list and prioritize "mobile improvement" for the IPFS node
    • create a temporal graph for the roadmap
  • chore(deps): bump google.golang.org/grpc from 1.37.0 to 1.38.0

    chore(deps): bump google.golang.org/grpc from 1.37.0 to 1.38.0

    Bumps google.golang.org/grpc from 1.37.0 to 1.38.0.

    Release notes

    Sourced from google.golang.org/grpc's releases.

    Release 1.38.0

    API Changes

    • reflection: accept interface instead of grpc.Server struct in Register() (#4340)
    • resolver: add error return value from ClientConn.UpdateState (#4270)

    Behavior Changes

    • client: do not poll name resolver when errors or bad updates are reported (#4270)
    • transport: InTapHandle may return RPC status errors; no longer RST_STREAMs (#4365)

    New Features

    • client: propagate connection error causes to RPC status (#4311, #4316)
    • xds: support inline RDS resource from LDS response (#4299)
    • xds: server side support is now experimentally available
    • server: add ForceServerCodec() to set a custom encoding.Codec on the server (#4205)

    Performance Improvements

    Bug Fixes

    • xds/balancergroup: fix rare memory leak after closing ClientConn (#4308)

    Documentation

    • examples: update xds examples for PSM security (#4256)
    • grpc: improve docs on StreamDesc (#4397)

    Release 1.37.1

    • client: fix rare panic when shutting down client while receiving the first name resolver update (#4398)
    • client: fix leaked addrConn struct when addresses are updated (#4347)
    • xds/resolver: prevent panic when two LDS updates are receives without RDS in between (#4327)
    Commits
    • 0257c86 Change version to 1.38.0 (#4418)
    • ce3e5ec v1.38.x: backport (#4453)
    • 5f95ad6 xds: workaround to deflake xds e2e tests (#4413)
    • b1940e1 xds: register resources at the mgmt server before requesting them (#4406)
    • 98c895f cleanup: use testutils.MarshalAny in more places (#4404)
    • 12a377b xds: nack route configuration with regexes that don't compile (#4388)
    • c15291b client: initialize safe config selector when creating ClientConn (#4398)
    • 328b1d1 transport: allow InTapHandle to return status errors (#4365)
    • aff517b xds: make e2e tests use a single management server instance (#4399)
    • 0439465 xds_resolver: fix flaky Test/XDSResolverDelayedOnCommitted (#4393)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • feat: refactor sharing links

    feat: refactor sharing links

    The goal of this PR is to refactor the sharing links system in order to make it more optimized and future-proof

    Current problems

    • size can be optimized (useful for QR)
    • not future-proof (i.e., this PR will break the past)
    • https://berty.tech/id JS page does not support group and is difficult to keep synced
    • some go/cmd/ subcommand i.e. bots requires running a bertymessenger instance to just perform conversions

    Todo

    • [x] create a super simple top-level API to manage everything related to links
    • [x] ensure we have kind and versioning in the encoded protobuf
    • [x] test various cases
    • [x] fuzz test the parts with encoding
    • [x] update https://berty.tech/id webpage to support new URLs (https://github.com/berty/www.berty.tech/pull/201)
    • [x] update go code to use this new mini lib
    • [x] rebase
    • [x] ensure we will be able to support encryption
    • [x] double-check missing FIXMEs
    • [x] update the mobile code and entitlement files to support new URLs
    • [x] add a check [skip-ci] or [skip-integration] in commits' message to actually do what it suggests
    • [x] testing session

    Previous implementation: https://github.com/berty/berty/blob/f3184c7af55029362bc72ba85319456dd3224299/go/pkg/bertymessenger/api.go#L93-L119

  • Mobile app doesn't compile

    Mobile app doesn't compile

    While trying to run 'device="test" make run.ios', getting the following error:

    /tmp/berty/js/.env.development GO111MODULE=off go get golang.org/x/mobile/cmd/gomobile cd /private/tmp/berty/js/packages/berty-app && gomobile init mkdir -p /private/tmp/berty/js/packages/go-bridge/ios/Frameworks GO111MODULE=off gomobile bind -o /private/tmp/berty/js/packages/go-bridge/ios/Frameworks/Bertybridge.framework -v -target ios berty.tech/berty/go/framework/bertybridge gomobile: gobind was not found. Please run gomobile init before trying again. make: *** [/private/tmp/berty/js/packages/go-bridge/ios/Frameworks] Error 1

    'gomobile init' was run and 'gomobile bind' command exists. Any ideas what can be done?

  • chore(deps): bump github.com/ipfs/go-ipfs from 0.12.2 to 0.13.1

    chore(deps): bump github.com/ipfs/go-ipfs from 0.12.2 to 0.13.1

    Bumps github.com/ipfs/go-ipfs from 0.12.2 to 0.13.1.

    Release notes

    Sourced from github.com/ipfs/go-ipfs's releases.

    v0.13.1

    go-ipfs v0.13.1 Release

    This release includes security fixes for various DOS vectors when importing untrusted user input with ipfs dag import and the v0/dag/import endpoint.

    View the linked security advisory for more information.

    Changelog

    • github.com/ipfs/go-ipfs:
      • chore: update car
    • github.com/ipld/go-car (v0.3.2 -> v0.4.0) & (v2.1.1 -> v2.4.0):
      • Bump version in prep for releasing go-car v0
      • Revert changes to insertionindex
      • Revert changes to index.Index while keeping most of security fixes
      • Return error when section length is invalid varint
      • Drop repeated package name from CarStats
      • Benchmark Reader.Inspect with and without hash validation
      • Use consistent CID mismatch error in Inspect and BlockReader.Next
      • Use streaming APIs to verify the hash of blocks in CAR Inspect
      • test: add fuzzing for reader#Inspect
      • feat: add block hash validation to Inspect()
      • feat: add Reader#Inspect() function to check basic validity of a CAR and return stats
      • Remove support for ForEach enumeration from car-index-sorted
      • Use a fix code as the multihash code for CarIndexSorted
      • Fix testutil assertion logic and update index generation tests
      • fix: tighter constraint of singleWidthIndex width, add index recommentation docs
      • fix: explicitly disable serialization of insertionindex
      • feat: MaxAllowed{Header,Section}Size option
      • feat: MaxAllowedSectionSize default to 32M
      • fix: use CidFromReader() which has overread and OOM protection
      • fix: staticcheck catches
      • fix: revert to internalio.NewOffsetReadSeeker in Reader#IndexReader
      • fix index comparisons
      • feat: Refactor indexes to put storage considerations on consumers
      • test: v2 add fuzzing of the index
      • fix: v2 don't divide by zero in width indexes
      • fix: v2 don't allocate indexes too big
      • test: v2 add fuzzing to Reader
      • fix: v2 don't accept overflowing offsets while reading v2 headers
      • test: v2 add fuzzing to BlockReader
      • fix: v2 don't OOM if the header size is too big
      • test: add fuzzing of NewCarReader
      • fix: do bound check while checking for CIDv0
      • fix: don't OOM if the header size is too big
      • Add API to regenerate index from CARv1 or CARv2

    ... (truncated)

    Changelog

    Sourced from github.com/ipfs/go-ipfs's changelog.

    v0.13.1 2022-07-06

    This release includes security fixes for various DOS vectors when importing untrusted user input with ipfs dag import and the v0/dag/import endpoint.

    View the linked security advisory for more information.

    Changelog

    • github.com/ipfs/go-ipfs:
      • chore: update car
    • github.com/ipld/go-car (v0.3.2 -> v0.4.0) & (v2.1.1 -> v2.4.0):
      • Bump version in prep for releasing go-car v0
      • Revert changes to insertionindex
      • Revert changes to index.Index while keeping most of security fixes
      • Return error when section length is invalid varint
      • Drop repeated package name from CarStats
      • Benchmark Reader.Inspect with and without hash validation
      • Use consistent CID mismatch error in Inspect and BlockReader.Next
      • Use streaming APIs to verify the hash of blocks in CAR Inspect
      • test: add fuzzing for reader#Inspect
      • feat: add block hash validation to Inspect()
      • feat: add Reader#Inspect() function to check basic validity of a CAR and return stats
      • Remove support for ForEach enumeration from car-index-sorted
      • Use a fix code as the multihash code for CarIndexSorted
      • Fix testutil assertion logic and update index generation tests
      • fix: tighter constraint of singleWidthIndex width, add index recommentation docs
      • fix: explicitly disable serialization of insertionindex
      • feat: MaxAllowed{Header,Section}Size option
      • feat: MaxAllowedSectionSize default to 32M
      • fix: use CidFromReader() which has overread and OOM protection
      • fix: staticcheck catches
      • fix: revert to internalio.NewOffsetReadSeeker in Reader#IndexReader
      • fix index comparisons
      • feat: Refactor indexes to put storage considerations on consumers
      • test: v2 add fuzzing of the index
      • fix: v2 don't divide by zero in width indexes
      • fix: v2 don't allocate indexes too big
      • test: v2 add fuzzing to Reader
      • fix: v2 don't accept overflowing offsets while reading v2 headers
      • test: v2 add fuzzing to BlockReader
      • fix: v2 don't OOM if the header size is too big
      • test: add fuzzing of NewCarReader
      • fix: do bound check while checking for CIDv0
      • fix: don't OOM if the header size is too big
      • Add API to regenerate index from CARv1 or CARv2
      • PrototypeChooser support (#305) (ipld/go-car#305)
      • bump to newer blockstore err not found (#301) (ipld/go-car#301)
      • Car command supports for largebytes nodes (#296) (ipld/go-car#296)
      • fix(test): rootless fixture should have no roots, not null roots

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • [Debate] Protocol demo application

    [Debate] Protocol demo application

    Here we need to decide what kind application we will provide as a Berty protocol demo / code example. This app is also intended to force us not to make the protocol too specific to our chat app and to keep it generic.

    So far we made the following proposals:

    • A game that is slow to play and does not require too much "real time" communication: chess game, card game, etc...
    • A devtools/playground application that allows developers to test directly the capabilities of the protocol like: creating a group, get information about it, add a contact, etc...
    • A very basic application such as "Yo"
  • Network - Define interfaces and restructure folder /core/network

    Network - Define interfaces and restructure folder /core/network

    • [ ] refactor #1065

    • [ ] add /network/storage.go #1064

    • [ ] update network dynamically #1066

    • [ ] move the network from account and start network independantly #1068

    • [ ] create a push transport to permit to have relay use push notification as /fcm/{fcm_id} and /apns/{apns_id}

  • chore: prevent going back to InitialScreen for iOS & Android

    chore: prevent going back to InitialScreen for iOS & Android

    Hello everyone, This is my first contribution for Berty.

    I did install the app and I was stuck at loading screen by swiping back. I believe this is an issue for many users so, I decide to fix it :)

    https://user-images.githubusercontent.com/106549013/179646154-60495604-f380-489b-9d37-5ae083e5709d.mp4

  • [MVP] Contact request feature first pass

    [MVP] Contact request feature first pass

    • Fixes #1591
    • Fixes #1600
    • Fixes #1598

    The ui is super ugly but since @Clemssss depdends on the contact request code, I will fix it in a separate PR

    Screenshot 2020-02-03 at 10 39 13 Screenshot 2020-02-04 at 17 40 06 Screenshot 2020-02-05 at 11 20 08
  • Bazel - Build proto and go

    Bazel - Build proto and go

    Quick start

    On mac, you only need brew. Bazel is pulled in as a make dependency. If you just want to install bazel you can make /usr/local/bin/bazel.

    For other platforms, see install bazel

    The following rules are defined in bazel.make, included in the root Makefile.

    • Build all: make bazel.build
    • Build bertychat and run banner: make bazel.banner
    • Build and run all tests: make bazel.test

    bazel basic usage

    bazel command //path/to/dir:target

    Where command can be build, run, test, mobile-install, etc..

    For example bazel run //go/cmd/bertychat:bertychat banner will build and run the target bertychat defined in go/cmd/BUILD.bazel with the argument banner

    If a target's name is equal to it's parent directory name, you don't need to specify a target, like so: bazel run //go/cmd/bertychat banner

    Full cli doc here

    BUILD.bazel file generation

    All the BUILD.bazel files except the root one were generated using gazelle, gazelle is not perfect so the generated rules need to be checked and edited (mostly the proto rules and dependencies)

    You can run gazelle with bazel run //:gazelle

    If you want to make sure gazelle will not edit a file, you can insert # gazelle:ignore in the file

    Adding new go or proto files

    Suppose you add a new main at go/cmd/foo/main.go. You would then run bazel run //:gazelle. This would create a new go_binary rule in go/cmd/foo/BUILD.bazel named foo.

    Then to run it you would do bazel run //go/cmd/foo

    Dependencies

    The WORKSPACE file at the root is kinda like a go.mod or package.json for bazel. All bazel dependencies are declared there.

    You can sync the workspace's go dependencies with bazel run //:gazelle -- update-repos -from_file=your/go.mod or bazel run //:gazelle -- update-repos example.com/some/go/pkg

    Reload on save

    If you install ibazel, you can use it in place of bazel to enable reload on save. ibazel run //go/cmd/bertychat -- banner berty-ibazel-blink

    CI

    The ci is setup to build and test everything under api, go and test/experiment/dht. It also runs go/cmd/bertychat banner

    Choices

    Build from .proto

    I chose to add proto rules so we can have the full graph under bazel control but you can also setup gazelle so it ignores .proto files and only cares about prebuilt .pb.go . In the end it's only a concern for the BUILD.bazel generation, you can always mix and match prebuilt .pb.go and building from .proto when editing the rules directly.

    Pinning go dependencies in WORKSPACE

    With bazel and gazelle, we could use the vendor directory instead of specifying the deps in the WORKSPACE file; or a mix or both. I chose to exclude the vendor directory and pin in WORKSPACE because it caused me trouble when I tried with vendor on a previous dig. Also the fact that we use a vendor directory that is not committed is confusing me, I'm not sure how to use it properly.

    Concerns

    Proto toolchain

    I chose to not bother with mimicking the proto toolchain used in the makefile but this will probably need to be addressed, I think we will be able to do it but I didn't dig yet.

    What's coming

    On a local branch, I wrote a basic gomobile rule (with genrule) and managed to build an android react-native module that depends on go code with bazel. I did not test it with an app yet so the linking might be terribly broken but it's good progress imo

  • WIP feat: extract contact_pk from the contact request reference

    WIP feat: extract contact_pk from the contact request reference

    This allows keeping short QR codes while having the contact PK which is used to generate avatars

    This idea comes from a discussion with @n0izn0iz, @clegirar and @zooma2k18

    @berty/go-owners what's your opinion on this?

  • Update valist.yml to support better IPFS & meta-tx infra

    Update valist.yml to support better IPFS & meta-tx infra

    Signed-off-by: Alec M. Wantoch [email protected]

    This updates the Valist GitHub Action to support new IPFS infra & meta-transactions powered by OpenZeppelin Defender, and an upgraded platform metadata spec :)

  • chore(deps): bump actions/cache from 2.1.6 to 3.2.2

    chore(deps): bump actions/cache from 2.1.6 to 3.2.2

    Bumps actions/cache from 2.1.6 to 3.2.2.

    Release notes

    Sourced from actions/cache's releases.

    v3.2.2

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/cache/compare/v3.2.1...v3.2.2

    v3.2.1

    What's Changed

    Full Changelog: https://github.com/actions/cache/compare/v3.2.0...v3.2.1

    v3.2.0

    What's Changed

    New Contributors

    ... (truncated)

    Changelog

    Sourced from actions/cache's changelog.

    3.2.2

    • Reverted the changes made in 3.2.1 to use gnu tar and zstd by default on windows.
    Commits
    • 4723a57 Revert compression changes related to windows but keep version logging (#1049)
    • d1507cc Merge pull request #1042 from me-and/correct-readme-re-windows
    • 3337563 Merge branch 'main' into correct-readme-re-windows
    • 60c7666 save/README.md: Fix typo in example (#1040)
    • b053f2b Fix formatting error in restore/README.md (#1044)
    • 501277c README.md: remove outdated Windows cache tip link
    • c1a5de8 Upgrade codeql to v2 (#1023)
    • 9b0be58 Release compression related changes for windows (#1039)
    • c17f4bf GA for granular cache (#1035)
    • ac25611 docs: fix an invalid link in workarounds.md (#929)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • berty should support scanning the QR code in the album, which can save a lot of effort

    berty should support scanning the QR code in the album, which can save a lot of effort

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    Berty product

    Mobile app

    Feature request

    berty should support scanning the QR code in the album, which can save a lot of effort

    Context

    This saves you from opening another device

    Possible implementation

    No response

  • chore(deps-dev): bump eslint from 7.32.0 to 8.30.0 in /js

    chore(deps-dev): bump eslint from 7.32.0 to 8.30.0 in /js

    Bumps eslint from 7.32.0 to 8.30.0.

    Release notes

    Sourced from eslint's releases.

    v8.30.0

    Features

    • 075ef2c feat: add suggestion for no-return-await (#16637) (Daniel Bartholomae)
    • 7190d98 feat: update globals (#16654) (Sébastien Règne)

    Bug Fixes

    • 1a327aa fix: Ensure flat config unignores work consistently like eslintrc (#16579) (Nicholas C. Zakas)
    • 9b8bb72 fix: autofix recursive functions in no-var (#16611) (Milos Djermanovic)

    Documentation

    • 6a8cd94 docs: Clarify Discord info in issue template config (#16663) (Nicholas C. Zakas)
    • ad44344 docs: CLI documentation standardization (#16563) (Ben Perlmutter)
    • 293573e docs: fix broken line numbers (#16606) (Sam Chen)
    • fa2c64b docs: use relative links for internal links (#16631) (Percy Ma)
    • 75276c9 docs: reorder options in no-unused-vars (#16625) (Milos Djermanovic)
    • 7276fe5 docs: Fix anchor in URL (#16628) (Karl Horky)
    • 6bef135 docs: don't apply layouts to html formatter example (#16591) (Tanuj Kanti)
    • dfc7ec1 docs: Formatters page updates (#16566) (Ben Perlmutter)
    • 8ba124c docs: update the prefer-const example (#16607) (Pavel)
    • e6cb05a docs: fix css leaking (#16603) (Sam Chen)

    Chores

    • f2c4737 chore: upgrade @​eslint/eslintrc@​1.4.0 (#16675) (Milos Djermanovic)
    • ba74253 chore: standardize npm script names per #14827 (#16315) (Patrick McElhaney)
    • 0d9af4c ci: fix npm v9 problem with file: (#16664) (Milos Djermanovic)
    • 90c9219 refactor: migrate off deprecated function-style rules in all tests (#16618) (Bryan Mishkin)

    v8.29.0

    Features

    • 49a07c5 feat: add allowParensAfterCommentPattern option to no-extra-parens (#16561) (Nitin Kumar)
    • e6a865d feat: prefer-named-capture-group add suggestions (#16544) (Josh Goldberg)
    • a91332b feat: In no-invalid-regexp validate flags also for non-literal patterns (#16583) (trosos)

    Documentation

    • 0311d81 docs: Configuring Plugins page intro, page tweaks, and rename (#16534) (Ben Perlmutter)
    • 57089b1 docs: add a property assignment example for camelcase rule (#16605) (Milos Djermanovic)
    • b6ab030 docs: add docs codeowners (#16601) (Strek)
    • 6380c87 docs: fix sitemap and feed (#16592) (Milos Djermanovic)
    • ade621d docs: perf debounce the search query (#16586) (Shanmughapriyan S)
    • fbcf3ab docs: fix searchbar clear button (#16585) (Shanmughapriyan S)
    • f894035 docs: HTTPS link to yeoman.io (#16582) (Christian Oliff)
    • de12b26 docs: Update configuration file pages (#16509) (Ben Perlmutter)
    • 1ae9f20 docs: update correct code examples for no-extra-parens rule (#16560) (Nitin Kumar)

    Chores

    • 7628403 chore: add discord channel link (#16590) (Amaresh S M)
    • f5808cb chore: fix rule doc headers check (#16564) (Milos Djermanovic)

    v8.28.0

    Features

    ... (truncated)

    Changelog

    Sourced from eslint's changelog.

    v8.30.0 - December 16, 2022

    • f2c4737 chore: upgrade @​eslint/eslintrc@​1.4.0 (#16675) (Milos Djermanovic)
    • 1a327aa fix: Ensure flat config unignores work consistently like eslintrc (#16579) (Nicholas C. Zakas)
    • 075ef2c feat: add suggestion for no-return-await (#16637) (Daniel Bartholomae)
    • ba74253 chore: standardize npm script names per #14827 (#16315) (Patrick McElhaney)
    • 6a8cd94 docs: Clarify Discord info in issue template config (#16663) (Nicholas C. Zakas)
    • 0d9af4c ci: fix npm v9 problem with file: (#16664) (Milos Djermanovic)
    • 7190d98 feat: update globals (#16654) (Sébastien Règne)
    • ad44344 docs: CLI documentation standardization (#16563) (Ben Perlmutter)
    • 90c9219 refactor: migrate off deprecated function-style rules in all tests (#16618) (Bryan Mishkin)
    • 9b8bb72 fix: autofix recursive functions in no-var (#16611) (Milos Djermanovic)
    • 293573e docs: fix broken line numbers (#16606) (Sam Chen)
    • fa2c64b docs: use relative links for internal links (#16631) (Percy Ma)
    • 75276c9 docs: reorder options in no-unused-vars (#16625) (Milos Djermanovic)
    • 7276fe5 docs: Fix anchor in URL (#16628) (Karl Horky)
    • 6bef135 docs: don't apply layouts to html formatter example (#16591) (Tanuj Kanti)
    • dfc7ec1 docs: Formatters page updates (#16566) (Ben Perlmutter)
    • 8ba124c docs: update the prefer-const example (#16607) (Pavel)
    • e6cb05a docs: fix css leaking (#16603) (Sam Chen)

    v8.29.0 - December 2, 2022

    • 0311d81 docs: Configuring Plugins page intro, page tweaks, and rename (#16534) (Ben Perlmutter)
    • 57089b1 docs: add a property assignment example for camelcase rule (#16605) (Milos Djermanovic)
    • b6ab030 docs: add docs codeowners (#16601) (Strek)
    • 7628403 chore: add discord channel link (#16590) (Amaresh S M)
    • 49a07c5 feat: add allowParensAfterCommentPattern option to no-extra-parens (#16561) (Nitin Kumar)
    • 6380c87 docs: fix sitemap and feed (#16592) (Milos Djermanovic)
    • e6a865d feat: prefer-named-capture-group add suggestions (#16544) (Josh Goldberg)
    • ade621d docs: perf debounce the search query (#16586) (Shanmughapriyan S)
    • a91332b feat: In no-invalid-regexp validate flags also for non-literal patterns (#16583) (trosos)
    • fbcf3ab docs: fix searchbar clear button (#16585) (Shanmughapriyan S)
    • f894035 docs: HTTPS link to yeoman.io (#16582) (Christian Oliff)
    • de12b26 docs: Update configuration file pages (#16509) (Ben Perlmutter)
    • f5808cb chore: fix rule doc headers check (#16564) (Milos Djermanovic)
    • 1ae9f20 docs: update correct code examples for no-extra-parens rule (#16560) (Nitin Kumar)

    v8.28.0 - November 18, 2022

    • 34c05a7 docs: Language Options page intro and tweaks (#16511) (Ben Perlmutter)
    • 3e66387 docs: add intro and edit ignoring files page (#16510) (Ben Perlmutter)
    • 436f712 docs: fix Header UI inconsistency (#16464) (Tanuj Kanti)
    • f743816 docs: switch to wrench emoji for auto-fixable rules (#16545) (Bryan Mishkin)
    • bc0547e docs: improve styles for versions and languages page (#16553) (Nitin Kumar)
    • 6070f58 docs: clarify esquery issue workaround (#16556) (Milos Djermanovic)
    • b48e4f8 docs: Command Line Interface intro and tweaks (#16535) (Ben Perlmutter)
    • b92b30f docs: Add Rules page intro and content tweaks (#16523) (Ben Perlmutter)
    • 1769b42 docs: Integrations page introduction (#16548) (Ben Perlmutter)
    • 63bce44 feat: add ignoreClassFieldInitialValues option to no-magic-numbers (#16539) (Milos Djermanovic)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump express from 4.17.2 to 4.18.2 in /js/web

    chore(deps): bump express from 4.17.2 to 4.18.2 in /js/web

    Bumps express from 4.17.2 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
Async peer communication protocol & library
Async peer communication protocol & library

Gotalk exists to make it easy for programs to talk with one another over the internet, like a web app coordinating with a web server, or a bunch of programs dividing work amongst each other.

Jan 5, 2023
Scalable real-time messaging server in language-agnostic way
Scalable real-time messaging server in language-agnostic way

Centrifugo is a scalable real-time messaging server in language-agnostic way. Centrifugo works in conjunction with application backend written in any

Jan 1, 2023
Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots

Tinode Instant Messaging Server Instant messaging server. Backend in pure Go (license GPL 3.0), client-side binding in Java, Javascript, and Swift, as

Jan 6, 2023
Open-IM-Server is open source instant messaging Server.Backend in Go.
Open-IM-Server is open source instant messaging Server.Backend in Go.

Open-IM-Server is open source instant messaging Server.Backend in Go.

Dec 31, 2022
Zero Trust Network Communication Sentinel provides peer-to-peer, multi-protocol, automatic networking, cross-CDN and other features for network communication.
Zero Trust Network Communication Sentinel provides peer-to-peer, multi-protocol, automatic networking, cross-CDN and other features for network communication.

Thank you for your interest in ZASentinel ZASentinel helps organizations improve information security by providing a better and simpler way to protect

Nov 1, 2022
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Jan 9, 2023
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Jan 6, 2023
An imageboard, but images are stored in a peer-to-peer network
An imageboard, but images are stored in a peer-to-peer network

Interplanetary File Dumpster An imageboard, but images are stored in a peer-to-peer network Features: Easy file sharing without registration and SMS.

Sep 30, 2022
DeepValueNetwork is a peer-to-peer database network managed and hosted by its community.

DeepValueNetwork To understand what DeepValueNetwork will be, I suggest you read this document. In progress This software is currently being developed

Dec 10, 2022
Steve - A peer-to-peer (p2p) decentralized network

Steve Steve is a peer-to-peer (p2p) decentralized network that enables people to

Feb 5, 2022
A Go language binding for encodeing and decoding data in the bencode format that is used by the BitTorrent peer-to-peer file sharing protocol.

bencode-go A Go language binding for encoding and decoding data in the bencode format that is used by the BitTorrent peer-to-peer file sharing protoco

Nov 27, 2022
📦 Command line peer-to-peer data transfer tool based on libp2p.

pcp - Peer Copy Command line peer-to-peer data transfer tool based on libp2p. Table of Contents Motivation Project Status How does it work? Usage Inst

Jan 5, 2023
pcp - 📦 Command line peer-to-peer data transfer tool based on libp2p.
pcp - 📦 Command line peer-to-peer data transfer tool based on libp2p.

pcp - Command line peer-to-peer data transfer tool based on libp2p.

Jan 5, 2023
Wrapper for Lightning Network Daemon (lnd). It provides separate accounts with minimum trust for end users.

LndHub.go Wrapper for Lightning Network Daemon (lnd). It provides separate accounts with minimum trust for end users. LndHub compatible API implemente

Dec 21, 2022
A Go library for master-less peer-to-peer autodiscovery and RPC between HTTP services

sleuth sleuth is a Go library that provides master-less peer-to-peer autodiscovery and RPC between HTTP services that reside on the same network. It w

Dec 28, 2022
Group peer to peer video calls for everyone written in Go and TypeScript

Peer Calls v4 WebRTC peer to peer calls for everyone. See it live in action at peercalls.com. The server has been completely rewriten in Go and all th

Dec 30, 2022
gopunch is a go implementation of a peer-to-peer chat service built using UDP hole punching.

Gopunch gopunch is a go implementation of a peer-to-peer chat service built using UDP hole punching. This is a toy implementation that I put together

May 24, 2022
decentralized,distributed,peer-to-peer database.

P2PDB 中文 | English 简介 P2PDB(p2p数据库),是一个去中心化、分布式、点对点数据库、P2PDB使用IPFS为其数据存储和IPFS Pubsub自动与对等方同步数据。P2PDB期望打造一个去中心化的分布式数据库,使P2PDB 成为去中心化应用程序 (dApps)、区块链应用程

Jan 1, 2023
Peer-to-peer encrypted message exchange

Constellation Constellation is a self-managing, peer-to-peer system in which each node: Hosts a number of NaCl (Curve25519) public/private key pairs.

Nov 11, 2022
Peer-to-peer hypermedia protocol
Peer-to-peer hypermedia protocol

IPFS powers the Distributed Web A peer-to-peer hypermedia protocol to make the web faster, safer, and more open. TL;DR Get help and talk about ideas i

Jan 5, 2023