# Libraries

The Eventide toolkit is made of the following libraries:

# Top Level Libraries

# eventide-postgres

Event-Oriented Autonomous Services Toolkit for Postgres
github.com/eventide-project/eventide-postgres

# Core Libraries

# message-db

Microservice native event store and message store for Postgres github.com/message-db/message-db

# messaging

Common primitives for platform-specific messaging implementations
github.com/eventide-project/messaging

# message_store

Common primitives for platform-specific message store implementations
github.com/eventide-project/message-store

# entity_projection

Projects event data into an entity
github.com/eventide-project/entity-projection

# entity_store

Store of entities that are projected from streams
github.com/eventide-project/entity-store

# entity_cache

Cache of entities retrieved by an entity-store, with in-memory temporary and on-disk permanent storage options
github.com/eventide-project/entity-cache

# consumer

Maintains a long running subscription to an event stream
github.com/eventide-project/consumer

# component_host

Host components inside a single physical process
github.com/eventide-project/component-host

# Postgres Libraries

# messaging-postgres

Implementation of messaging primitives for Postgres
github.com/eventide-project/messaging-postgres

# message_store-postgres

Message store implementation for Postgres
github.com/eventide-project/message-store-postgres

# entity_snapshot-postgres

Projected entity snapshotting for Postgres
github.com/eventide-project/entity-snapshot-postgres

# consumer-postgres

Consumer implementation for Postgres
github.com/eventide-project/consumer-postgres

# Code Generators

# command_line-component_generator

Command line project generator for components built using the Postgres implementation
github.com/eventide-project/command-line-component-generator

# Utility Libraries

# attribute

Define an attribute on a class using an imperative API
github.com/eventide-project/attribute

# schema

Primitives for schema and structure
github.com/eventide-project/schema

# dependency

Declare dependencies that have null object or substitute default values
github.com/eventide-project/dependency

# diagnostics-sample

Sampling and measurement of execution cycles https://github.com/eventide-project/diagnostics-sample

# identifier-uuid

UUID identifier generator with support for dependency configuration for real and null object implementations
github.com/eventide-project/identifier-uuid

# initializer

Generates initializers and attributes
github.com/eventide-project/initializer

# settings

Settings data access and assignment
github.com/eventide-project/settings

# log

Logging to STD IO with levels, tagging, and coloring
github.com/eventide-project/log

# transform

Common interface for object and format transformation, and transformer discovery
github.com/eventide-project/transform

# telemetry

In-process telemetry based on observers
github.com/eventide-project/telemetry

# try

Attempt an execution, and determine its success
github.com/eventide-project/try

# retry

Retry an execution that terminates with an error, with optional backoff cycles
github.com/eventide-project/retry

# poll

Generalized implementation of polling with support for timeout and polling interval.
github.com/eventide-project/poll

# casing

Convert the case of strings, symbols, and hash keys, including camelCase, PascalCase, and underscore_case
github.com/eventide-project/casing

# validate

Interface and protocol for validating and validation discovery
github.com/eventide-project/validate

# set_attributes

Set an object's attributes from a hash or an object that implements to_h
github.com/eventide-project/set-attributes

# clock

Clock interface with support for dependency configuration for real and null object implementations
github.com/eventide-project/clock

# subst_attr

Declare attributes that have default implementations that are substitutes or null objects
github.com/eventide-project/subst-attr

# mimic

Copy a class's instance interface to an anonymous, new object that acts as a substitutable mimic for the class
github.com/eventide-project/mimic

# invocation

Extract information about a method's invocation including the method name, parameter names, and parameter values
github.com/eventide-project/invocation

# virtual

Virtual method declaration
github.com/eventide-project/virtual

# reflect

Reflection of inner namespaces used for protocol discovery
github.com/eventide-project/reflect

# async_invocation

Return value for async method that is accidentally invoked synchronously
github.com/eventide-project/async-invocation

# configure

Generates class level configure methods
github.com/eventide-project/configure

# collection

Type-checked set
github.com/eventide-project/collection

# Test Fixture Libraries

# messaging-fixtures

TestBench fixtures for the Messaging library
https://github.com/eventide-project/messaging-fixtures

# entity-projection-fixtures

TestBench fixtures for EntityProjection implementations
https://github.com/eventide-project/entity-projection-fixtures

# schema-fixtures

TestBench fixtures for the Schema library
https://github.com/eventide-project/schema-fixtures

# View Data Libraries

# view_data-commands

Message schemas for data-oriented command streams used to populate view databases
github.com/eventide-project/view-data-commands

# view_data-pg

Populate Postgres view databases from event streams
github.com/eventide-project/view-data-pg

# Third Party Libraries

# pg

Ruby interface to the PostgreSQL RDBMS
github.com/ged/ruby-pg

# ntl-actor

Implementation of actor pattern for Ruby
github.com/ntl/actor

# terminal_colors

Apply ANSI terminal colors to strings
github.com/ntl/terminal-colors

# test_bench

A frugal test framework for Ruby
github.com/test-bench/test-bench

# NPM Packages

# message-db

Microservice native event store and message store for Postgres https://github.com/message-db/npm-module