1097b14a7f
* Migrations in place, how to run them? * Remove down migrations and touch database.go * Database and Database Test package in place, added functions to get and store app metrics * make generate output * Minor bug fix on app metrics insert and select * Add a validation layer to restrict what can be saved in the database * Make validation more terse, throw error if schema doesn't exist, expose appmetrics service * service updates * Compute all errors before sending them out * Trying to bring a closjure to appmetrics go * Expose appmetrics via an api, skip fancy * Address value as Jason Dawt Rawmasage to ease parsing * Introduce a buffered chan with magic cap of 8 to minimize writes to DB. Tests for service and API. Also expose GetAppMetrics function. * Lint issues * Remove autoincrement, undo waku.json changes, fix error being shadowed, return nil where nil ought to be returned, get rid of buffered channel * Bump migration number * Fix API factory usage * Add comment re:json.RawMessage instead of strings * Get rid of test vars, throw save error inside the loop * Update version Co-authored-by: Samuel Hawksby-Robinson <samuel@samyoul.com> |
||
---|---|---|
.. | ||
audio | ||
common | ||
communities | ||
datasync | ||
encryption | ||
ens | ||
identity | ||
images | ||
internal/sqlite | ||
migrations | ||
protobuf | ||
pushnotificationclient | ||
pushnotificationserver | ||
requests | ||
sqlite | ||
subscription | ||
transport | ||
tt | ||
urls | ||
v1 | ||
zaputil | ||
LICENSE | ||
README.md | ||
chat.go | ||
chat_group_proxy.go | ||
chat_test.go | ||
communities_messenger_test.go | ||
contact.go | ||
emoji_reaction.go | ||
errors.go | ||
group_chat_invitation.go | ||
group_chat_system_messages.go | ||
local_notifications.go | ||
message_builder.go | ||
message_handler.go | ||
message_handler_test.go | ||
message_persistence.go | ||
message_validator.go | ||
message_validator_test.go | ||
messenger.go | ||
messenger_chats.go | ||
messenger_communities.go | ||
messenger_config.go | ||
messenger_contact_update_test.go | ||
messenger_contacts.go | ||
messenger_emoji_test.go | ||
messenger_ens.go | ||
messenger_installations_test.go | ||
messenger_mute_test.go | ||
messenger_response.go | ||
messenger_response_test.go | ||
messenger_test.go | ||
persistence.go | ||
persistence_test.go | ||
push_notification_test.go | ||
transaction_validator.go | ||
transaction_validator_test.go |
README.md
status-go/protocol
This is an implementation of the secure transport and payloads which are a part of the Status Client specification.
This implementation uses SQLite and SQLCipher for persistent storage.
The payloads are encoded using protocol-buffers.
Content
messenger.go
is the main file which exportsMessenger
struct. This is a public API to interact with this implementation of the Status Chat Protocol.protobuf/
contains protobuf files implementing payloads described in the Payloads spec.encryption/
implements the Secure Transport spec.transport/
connects the Status Chat Protocol with a wire-protocol which in our case is either Whisper or Waku.datasync/
is an adapter for MVDS.applicationmetadata/
is an outer layer wrapping a payload with an app-specific metadata like a signature.identity/
implements details related to creating a three-word name and identicon.migrations/
contains implementation specific migrations for the sqlite database which is used byMessenger
as a persistent data store.
History
Originally this package was a dedicated repo called status-protocol-go
and was migrated into status-go
. The new status-go/protocol
package maintained its own dependencies until sub modules were removed and the root go.mod file managed all dependencies for the entire status-go
repo.