# 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 (opens new window)

# Core Libraries

# message-db

Microservice native event store and message store for Postgres github.com/message-db/message-db (opens new window)

# messaging

Common primitives for platform-specific messaging implementations
github.com/eventide-project/messaging (opens new window)

# message_store

Common primitives for platform-specific message store implementations
github.com/eventide-project/message-store (opens new window)

# entity_projection

Projects event data into an entity
github.com/eventide-project/entity-projection (opens new window)

# entity_store

Store of entities that are projected from streams
github.com/eventide-project/entity-store (opens new window)

# 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 (opens new window)

# consumer

Maintains a long running subscription to an event stream
github.com/eventide-project/consumer (opens new window)

# component_host

Host components inside a single physical process
github.com/eventide-project/component-host (opens new window)

# Postgres Libraries

# messaging-postgres

Implementation of messaging primitives for Postgres
github.com/eventide-project/messaging-postgres (opens new window)

# message_store-postgres

Message store implementation for Postgres
github.com/eventide-project/message-store-postgres (opens new window)

# entity_snapshot-postgres

Projected entity snapshotting for Postgres
github.com/eventide-project/entity-snapshot-postgres (opens new window)

# consumer-postgres

Consumer implementation for Postgres
github.com/eventide-project/consumer-postgres (opens new window)

# 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 (opens new window)

# Utility Libraries

# attribute

Define an attribute on a class using an imperative API
github.com/eventide-project/attribute (opens new window)

# schema

Primitives for schema and structure
github.com/eventide-project/schema (opens new window)

# dependency

Declare dependencies that have null object or substitute default values
github.com/eventide-project/dependency (opens new window)

# diagnostics-sample

Sampling and measurement of execution cycles https://github.com/eventide-project/diagnostics-sample (opens new window)

# identifier-uuid

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

# initializer

Generates initializers and attributes
github.com/eventide-project/initializer (opens new window)

# settings

Settings data access and assignment
github.com/eventide-project/settings (opens new window)

# log

Logging to STD IO with levels, tagging, and coloring
github.com/eventide-project/log (opens new window)

# transform

Common interface for object and format transformation, and transformer discovery
github.com/eventide-project/transform (opens new window)

# telemetry

In-process telemetry based on observers
github.com/eventide-project/telemetry (opens new window)

# try

Attempt an execution, and determine its success
github.com/eventide-project/try (opens new window)

# retry

Retry an execution that terminates with an error, with optional backoff cycles
github.com/eventide-project/retry (opens new window)

# poll

Generalized implementation of polling with support for timeout and polling interval.
github.com/eventide-project/poll (opens new window)

# casing

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

# validate

Interface and protocol for validating and validation discovery
github.com/eventide-project/validate (opens new window)

# set_attributes

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

# clock

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

# subst_attr

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

# 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 (opens new window)

# invocation

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

# virtual

Virtual method declaration
github.com/eventide-project/virtual (opens new window)

# reflect

Reflection of inner namespaces used for protocol discovery
github.com/eventide-project/reflect (opens new window)

# async_invocation

Return value for async method that is accidentally invoked synchronously
github.com/eventide-project/async-invocation (opens new window)

# configure

Generates class level configure methods
github.com/eventide-project/configure (opens new window)

# collection

Type-checked set
github.com/eventide-project/collection (opens new window)

# Test Fixture Libraries

# messaging-fixtures

TestBench fixtures for the Messaging library
https://github.com/eventide-project/messaging-fixtures (opens new window)

# entity-projection-fixtures

TestBench fixtures for EntityProjection implementations
https://github.com/eventide-project/entity-projection-fixtures (opens new window)

# schema-fixtures

TestBench fixtures for the Schema library
https://github.com/eventide-project/schema-fixtures (opens new window)

# 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 (opens new window)

# view_data-pg

Populate Postgres view databases from event streams
github.com/eventide-project/view-data-pg (opens new window)

# Third Party Libraries

# pg

Ruby interface to the PostgreSQL RDBMS
github.com/ged/ruby-pg (opens new window)

# ntl-actor

Implementation of actor pattern for Ruby
github.com/ntl/actor (opens new window)

# terminal_colors

Apply ANSI terminal colors to strings
github.com/ntl/terminal-colors (opens new window)

# test_bench

A frugal test framework for Ruby
github.com/test-bench/test-bench (opens new window)

# NPM Packages

# message-db

Microservice native event store and message store for Postgres https://github.com/message-db/npm-module (opens new window)