# Packages
Package api contains representation types for Relay's REST endpoints which may be referenced from multiple packages.
Package application providers helpers used by the command-line entry points of all versions of Relay.
Package autoconfig contains a client for the auto-configuration streaming service.
Package basictypes contains types and constants that are used by multiple Relay packages and do not have any testable logic of their own.
Package bigsegments contains logic for synchronizing big segments.
Package browser contains internal helpers that are only used for browser requests.
Package credential defines the main SDKCredential interface used throughout the codebase, as well as a means to detect how a credential has changed.
Package envfactory contains types related to service-driven environment configuration, shared by the autoconfig and filedata packages.
Package events contains the internal implementation of event forwarding.
Package filedata contains logic for reading a file data source.
Package httpconfig provides helpers for special types of HTTP client configuration supported by Relay.
Package logging provides logging-related helpers.
Package metrics implements Relay's integration with OpenCensus.
Package middleware contains helpers for adding standard behavior like authentication and metrics to REST endpoints.
Package projmanager contains functionality to execute commands (such as creating, updating, or deleting) entities (such as environments and filters) based on inspection of the entity's project key.
Package relayenv contains the internal interface and implementation of EnvConfig, the object that manages Relay state for a specific configured LD environment.
Package sdkauth represents the authentication parameters that an SDK provides to Relay in order to gain access to an environment.
Package sdks contains types and helpers for describing the behavior of different kinds of SDKs that can connect to Relay, and also for Relay's own use of the Go SDK.
Package sharedtest provides helper code and test data that may be used by tests in all Relay components and distributions.
Package store contains the internal implementation of how Relay interacts with the SDK's DataStore to detect data updates.
Package streams defines the Relay core abstractions for implementing streaming endpoints, and provides some standard implementations for those endpoints.
Package util provides general helpers used by Relay code.