# Packages
No description provided by the author
Package adapter contains the interfaces to be implemented by the database adapter.
No description provided by the author
No description provided by the author
Package ringhash implementats a consistent ring hash: https://en.wikipedia.org/wiki/Consistent_hashing.
No description provided by the author
Package validate defines an interface which must be implmented by credential validators.
# Functions
ErrAlreadyAuthenticated invalid attempt to authenticate an already authenticated session Switching users is not supported (409).
ErrAlreadyExists the object already exists (409).
ErrAPIKeyRequired valid API key is required (403).
ErrAttachFirst must attach to topic first (409).
ErrAuthFailed authentication failed (401).
ErrAuthRequired authentication required - user must authenticate first (401).
ErrAuthUnknownScheme authentication scheme is unrecognized or invalid (401).
ErrClusterNodeUnreachable topic is handled by another cluster node and than node is unreachable (502).
ErrCommandOutOfSequence invalid sequence of comments, i.e.
ErrDuplicateCredential attempt to create a duplicate credential (409).
ErrGone topic deleted or user banned (410).
ErrLocked operation rejected because the topic is being deleted (423).
ErrMalformed request malformed (400).
ErrNotFound is an error for missing objects other than user or topic (404).
ErrNotImplemented feature not implemented (501).
ErrOperationNotAllowed a valid operation is not permitted in this context (405).
ErrPermissionDenied user is authenticated but operation is not permitted (403).
ErrPolicy request violates a policy (e.g.
ErrSessionNotFound valid API key is required (403).
ErrTooLarge packet or request size exceeded the limit (413).
ErrTopicNotFound topic is not found (404).
ErrUnknown database or other server error (500).
ErrUserNotFound user is not found (404).
ErrVersionNotSupported invalid (too low) protocol version (505).
InfoAlreadySubscribed request to subscribe was ignored because user is already subscribed (304).
InfoChallenge requires user to respond to presented challenge before login can be completed (300).
InfoFound redirects to a new resource (307).
InfoNoAction request ignored bacause the object is already in the desired state (304).
InfoNotJoined request to leave was ignored because user is not subscribed (304).
InfoNotModified update request is a noop (304).
InfoValidateCredentials requires user to confirm credentials before going forward (300).
NewSessionStore initializes a session store.
NoErr indicates successful completion (200).
NoErrAccepted indicates request was accepted but not perocessed yet (202).
NoErrCreated indicated successful creation of an object (201).
NoErrEvicted indicates that the user was disconnected from topic for no fault of the user (205).
NoErrShutdown means user was disconnected from topic because system shutdown is in progress (205).
ParsePluginFilter parses filter config string.
# Constants
Wire transport.
FmtJSON JSON format.
FmtNONE undefined format.
FmtPROTO Protobuffer format.
Wire transport.
Wire transport.
Wire transport.
StopDeleted terminated due to being deleted.
StopNone no reason given/default.
StopRehashing terminated due to cluster rehashing (moved to a different node).
StopShutdown terminated due to system shutdown.
Wire transport.
# Structs
ClientComMessage is a wrapper for client messages.
Cluster is the representation of the cluster.
ClusterNode is a client's connection to another node.
ClusterPing is content of a leader node ping to a follower node.
ClusterReq is a Proxy to Master request message.
ClusterResp is a Master to Proxy response message.
ClusterSess is a basic info on a remote session where the message was created.
ClusterVote is a vote request and a response in leader election.
ClusterVoteRequest is a request from a leader candidate to a node to vote for the candidate.
ClusterVoteResponse is a vote from a node.
Hub is the core structure which holds topics.
MsgAccCred is an account credential, provided or verified.
MsgAccessMode is a definition of access mode.
MsgClientAcc is a user creation message {acc}.
MsgClientDel delete messages or topic {del}.
MsgClientGet is a query of topic state {get}.
MsgClientHi is a handshake {hi} message.
MsgClientLeave is an unsubscribe {leave} request message.
MsgClientLogin is a login {login} message.
MsgClientNote is a client-generated notification for topic subscribers {note}.
MsgClientPub is client's request to publish data to topic subscribers {pub}.
MsgClientSet is an update of topic state {set}.
MsgClientSub is a subscription request {sub} message.
MsgDefaultAcsMode is a topic default access mode.
MsgDelRange is either an individual ID (HiId=0) or a randge of deleted IDs, low end inclusive (closed), high-end exclusive (open): [LowId .
MsgDelValues describes request to delete messages.
MsgFindQuery is a format of fndXXX.private.
MsgGetOpts defines Get query parameters.
MsgGetQuery is a topic metadata or data query.
MsgLastSeenInfo contains info on user's appearance online - when & user agent.
MsgServerCtrl is a server control message {ctrl}.
MsgServerData is a server {data} message.
MsgServerInfo is the server-side copy of MsgClientNote with From added (non-authoritative).
MsgServerMeta is a topic metadata {meta} update.
MsgServerPres is presence notification {pres} (authoritative update).
MsgSetDesc is a C2S in set.what == "desc" and sub.init message.
MsgSetQuery is an update to topic metadata: Desc, subscriptions, or tags.
MsgSetSub is a payload in set.sub request to update current subscription or invite another user, {sub.what} == "sub".
MsgTopicDesc is a topic description, S2C in Meta message.
MsgTopicSub is topic subscription details, sent in Meta message.
Plugin defines client-side parameters of a gRPC plugin.
PluginFilter is a enum which defines filtering types.
ServerComMessage is a wrapper for server-side messages.
Session represents a single WS connection or a long polling session.
SessionStore holds live sessions.
Subscription is a mapper of sessions to topics.
Topic is an isolated communication channel.
# Type aliases
SerialFormat is an enum of possible serialization formats.