github.com/status-im/status-go@v1.1.0/protocol/README.md (about)

     1  # status-go/protocol
     2  
     3  This is an implementation of the [secure transport](https://specs.status.im/spec/5) and [payloads](https://specs.status.im/spec/6) which are a part of [the Status Client specification](https://specs.status.im/spec/1).
     4  
     5  This implementation uses SQLite and [SQLCipher](github.com/mutecomm/go-sqlcipher) for persistent storage.
     6  
     7  The payloads are encoded using [protocol-buffers](https://developers.google.com/protocol-buffers).
     8  
     9  ## Content
    10  
    11  * `messenger.go` is the main file which exports `Messenger` struct. This is a public API to interact with this implementation of the Status Chat Protocol.
    12  * `protobuf/` contains protobuf files implementing payloads described in [the Payloads spec](https://specs.status.im/spec/6).
    13  * `encryption/` implements [the Secure Transport spec](https://specs.status.im/spec/5).
    14  * `transport/` connects the Status Chat Protocol with a wire-protocol which in our case is either Whisper or Waku.
    15  * `datasync/` is an adapter for [MVDS](https://specs.vac.dev/specs/mvds.html).
    16  * `applicationmetadata/` is an outer layer wrapping a payload with an app-specific metadata like a signature.
    17  * `identity/` implements details related to creating a three-word name and identicon.
    18  * `migrations/` contains implementation specific migrations for the sqlite database which is used by `Messenger` as a persistent data store.
    19  
    20  ## History
    21  
    22  Originally this package was a dedicated repo called `status-protocol-go` and [was migrated](https://github.com/status-im/status-go/pull/1684) into `status-go`. The new `status-go/protocol` package maintained its own dependencies until [sub modules were removed](https://github.com/status-im/status-go/pull/1835/files) and the root go.mod file managed all dependencies for the entire `status-go` repo.