Core contains common libraries used across the synapse Go repositories.
root ├── bytemap: Implements a map using `[]rune` or `[]byte` instead of `string` ├── commandline: Provides utilities for creating an interactive shell command for a [`cli`](github.com/urfave/cli) using the [`go-prompt`](github.com/c-bata/go-prompt) package. ├── config: Contains the configuration for the core package. ├── dbcommon: Contains common database utilities used with gorm. ├── dockerutil: Provides tools for working with Docker. ├── ginhelper: Contains a set of utilities for working with the Gin framework and a set of common middleware. ├── mapmutex: Implements a map that uses a mutex to protect concurrent access. ├── merkle: Provides a go based merkle tree implementation. ├── metrics: Provides a set of utilities for working with metrics/otel tracing. ├── mocktesting: Provides a mocked tester for use with `testing.TB` ├──observer(deprecated): Provides an interface for adding/removing listeners. ├── processlog: Provides a way to interact with detatched processes as streams. ├── retry: Retries a function until it succeeds or the timeout is reached. This comes with a set of backoff strategies/options. ├── server: Provides a context-safe server that can be used to start/stop a server. ├── testsuite: Provides a wrapper around testify/suite. ├── threaditer: Provides a thread-safe generic iterator for a slice.