# AshScylla v0.11.0 - Table of Contents

## Pages

- [README](readme.md)
- [AshScylla Usage Guide](usage_guide.md)
- [Development Guide: AshScylla with Dev Container](dev_guide.md)
- [Production Guide: AshScylla with ScyllaDB Cluster](production_guide.md)
- [AshScylla Implementation Summary](implementation_summary.md)
- [Error Handling Guide](error_handling.md)
- [Changelog](changelog.md)

## Modules

- [AshScylla.Connection](AshScylla.Connection.md): Direct Xandra connection wrapper for AshScylla.
- [AshScylla.DataLayer.Types](AshScylla.DataLayer.Types.md): Shared CQL type mapping and conversion helpers.
- [AshScylla.Identifier](AshScylla.Identifier.md): Centralized CQL identifier sanitization.
- [AshScylla.Migrator](AshScylla.Migrator.md): Thin wrapper for executing CQL schema migrations via Xandra directly.
- [AshScylla.MixHelpers](AshScylla.MixHelpers.md): Shared helper functions for AshScylla Mix tasks.
- [AshScylla.ResourceGenerator](AshScylla.ResourceGenerator.md): Generates starter Ash Resource modules for AshScylla.

- [AshScylla.Schema](AshScylla.Schema.md): Behaviour for schema migration modules loaded from `priv/migrations`.
- [AshScylla.Schema.Resource](AshScylla.Schema.Resource.md): Struct representing a single resource's schema statements.

- [AshScylla.SchemaLoader](AshScylla.SchemaLoader.md): Loads and discovers schema migration modules from `priv/migrations`.

- Core
  - [AshScylla](AshScylla.md): AshScylla is a data layer for Ash Framework that uses ScyllaDB (via Xandra).
  - [AshScylla.DataLayer](AshScylla.DataLayer.md): An Ash data layer for ScyllaDB using Xandra (direct CQL driver).

- Schema Helpers
  - [AshScylla.Migration](AshScylla.Migration.md): CQL schema generation helpers for ScyllaDB.

- Data Layer Modules
  - [AshScylla.DataLayer.Batch](AshScylla.DataLayer.Batch.md): Batch operations support for AshScylla using ScyllaDB's BATCH statements.
  - [AshScylla.DataLayer.Collection](AshScylla.DataLayer.Collection.md): Collection type (LIST, SET, MAP) optimization for ScyllaDB.
  - [AshScylla.DataLayer.Compression](AshScylla.DataLayer.Compression.md): Compression support for large payloads in ScyllaDB.
  - [AshScylla.DataLayer.Dsl](AshScylla.DataLayer.Dsl.md): DSL extensions for configuring ScyllaDB-specific options on Ash resources.
  - [AshScylla.DataLayer.FilterValidator](AshScylla.DataLayer.FilterValidator.md): Validates that filter columns are queryable in ScyllaDB/Cassandra.
  - [AshScylla.DataLayer.MaterializedView](AshScylla.DataLayer.MaterializedView.md): Materialized view support for AshScylla.
  - [AshScylla.DataLayer.Pagination](AshScylla.DataLayer.Pagination.md): Token-based pagination support for AshScylla.
  - [AshScylla.DataLayer.QueryBuilder](AshScylla.DataLayer.QueryBuilder.md): Query building functions for AshScylla data layer.
  - [AshScylla.DataLayer.QueryOptimizer](AshScylla.DataLayer.QueryOptimizer.md): Query optimization hints for ScyllaDB.
  - [AshScylla.DataLayer.SchemaMigration](AshScylla.DataLayer.SchemaMigration.md): Automatic schema migration support for AshScylla.
  - [AshScylla.DataLayer.Udt](AshScylla.DataLayer.Udt.md): User Defined Type (UDT) runtime support for ScyllaDB.

- Repo Helpers
  - [AshScylla.Release](AshScylla.Release.md): Release task helpers for running AshScylla migrations in production
without Mix installed.
  - [AshScylla.Repo](AshScylla.Repo.md): Configuration module for AshScylla using direct Xandra connections.

- Performance
  - [AshScylla.PreparedStatementCache](AshScylla.PreparedStatementCache.md): ETS-based prepared statement cache for ScyllaDB/Cassandra queries.

- Observability
  - [AshScylla.Telemetry](AshScylla.Telemetry.md): Telemetry integration for AshScylla.

- Error Handling
  - [AshScylla.Error](AshScylla.Error.md): Common error types and utilities for AshScylla.
  - [AshScylla.Error.ScyllaError](AshScylla.Error.ScyllaError.md): Comprehensive error handling for ScyllaDB-specific errors.

## Mix Tasks

- [mix ash_scylla.gen](Mix.Tasks.AshScylla.Gen.md): Generates a schema migration file from Ash DSL resource definitions.
- [mix ash_scylla.gen.repo](Mix.Tasks.AshScylla.Gen.Repo.md): Generates an AshScylla Repo module for your application.
- [mix ash_scylla.migrate](Mix.Tasks.AshScylla.Migrate.md): Runs AshScylla schema migrations for all resources or a specific resource.
- [mix ash_scylla.new_template](Mix.Tasks.AshScylla.NewTemplate.md): Generates an Ash Resource template backed by AshScylla.
- [mix ash_scylla.setup](Mix.Tasks.AshScylla.Setup.md): Sets up the ScyllaDB keyspace for AshScylla.

