[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › local‑first/Storage

Encrypted storage layer for local-first data.

## Core Types

| Interface                                                                                                          | Description                                                                                                   |
| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
| [ValidDbChangeValuesError](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/ValidDbChangeValuesError) | A plain structured error produced by a [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) operation. |

## Functions

| Function                                                                                                                    | Description                                                                                                                                                                                                                                             |
| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [createBaseSqliteStorage](https://evolu.dev/docs/api-reference/common/local-first/Storage/functions/createBaseSqliteStorage)             | Creates a [BaseSqliteStorage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage) implementation.                                                                                                                          |
| [createBaseSqliteStorageTables](https://evolu.dev/docs/api-reference/common/local-first/Storage/functions/createBaseSqliteStorageTables) | -                                                                                                                                                                                                                                                       |
| [getTimestampByIndex](https://evolu.dev/docs/api-reference/common/local-first/Storage/functions/getTimestampByIndex)                     | -                                                                                                                                                                                                                                                       |
| [getTimestampInsertStrategy](https://evolu.dev/docs/api-reference/common/local-first/Storage/functions/getTimestampInsertStrategy)       | Determines the insertion strategy for a timestamp based on its position relative to the current first and last timestamps.                                                                                                                              |
| [readOwnerUsageOrDefault](https://evolu.dev/docs/api-reference/common/local-first/Storage/functions/readOwnerUsageOrDefault)             | Reads owner usage from SQLite and returns default bounds when absent.                                                                                                                                                                                   |
| [testCreateCrdtMessage](https://evolu.dev/docs/api-reference/common/local-first/Storage/functions/testCreateCrdtMessage)                 | Test helper for creating a simple [CrdtMessage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage).                                                                                                                             |
| [testFingerprintTimestamps](https://evolu.dev/docs/api-reference/common/local-first/Storage/functions/testFingerprintTimestamps)         | Computes a brute-force [Fingerprint](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/Fingerprint) from [TimestampBytes](https://evolu.dev/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes) values for tests and benchmarks. |
| [timestampBytesToFingerprint](https://evolu.dev/docs/api-reference/common/local-first/Storage/functions/timestampBytesToFingerprint)     | -                                                                                                                                                                                                                                                       |
| [updateOwnerUsage](https://evolu.dev/docs/api-reference/common/local-first/Storage/functions/updateOwnerUsage)                           | Updates timestamp bounds in evolu_usage table.                                                                                                                                                                                                          |

## Interfaces

| Interface                                                                                                  | Description                                                                                                                                                                                                                                               |
| ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [BaseRange](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/BaseRange)                       | -                                                                                                                                                                                                                                                         |
| [BaseSqliteStorage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage)       | Common interface for both client and relay SQLite storages.                                                                                                                                                                                               |
| [BaseSqliteStorageDep](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorageDep) | -                                                                                                                                                                                                                                                         |
| [CrdtMessage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage)                   | A CRDT message combining a unique [Timestamp](https://evolu.dev/docs/api-reference/common/local-first/Timestamp/variables/Timestamp) with a [DbChange](https://evolu.dev/docs/api-reference/common/local-first/Storage/variables/DbChange).                                         |
| [DbChange](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/DbChange)                         | A DbChange is a change to a table row. Together with a unique [Timestamp](https://evolu.dev/docs/api-reference/common/local-first/Timestamp/variables/Timestamp), it forms a [CrdtMessage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage). |
| [EncryptedCrdtMessage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage) | An encrypted [CrdtMessage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage).                                                                                                                                                    |
| [FingerprintRange](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/FingerprintRange)         | -                                                                                                                                                                                                                                                         |
| [SkipRange](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/SkipRange)                       | -                                                                                                                                                                                                                                                         |
| [Storage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/Storage)                           | Evolu Storage.                                                                                                                                                                                                                                            |
| [StorageConfig](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/StorageConfig)               | -                                                                                                                                                                                                                                                         |
| [StorageDep](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/StorageDep)                     | -                                                                                                                                                                                                                                                         |
| [StorageQuotaError](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/StorageQuotaError)       | Error when storage or billing quota is exceeded.                                                                                                                                                                                                          |
| [TimestampsRange](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/TimestampsRange)           | -                                                                                                                                                                                                                                                         |

## Type Aliases

| Type Alias                                                                                                                       | Description                                                                                                                                                                                                                                           |
| -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [DbChangeValues](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/DbChangeValues)                                 | -                                                                                                                                                                                                                                                     |
| [EncryptedDbChange](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange)                           | Encrypted DbChange                                                                                                                                                                                                                                    |
| [Fingerprint](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/Fingerprint)                                       | A cryptographic hash used for efficiently comparing collections of [TimestampBytes](https://evolu.dev/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes)es.                                                                                 |
| [InfiniteUpperBound](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/InfiniteUpperBound)                         | -                                                                                                                                                                                                                                                     |
| [Range](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/Range)                                                   | -                                                                                                                                                                                                                                                     |
| [RangeType](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/RangeType)                                           | -                                                                                                                                                                                                                                                     |
| [RangeUpperBound](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound)                               | Union type for Range's upperBound: either a [TimestampBytes](https://evolu.dev/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes) or [InfiniteUpperBound](https://evolu.dev/docs/api-reference/common/local-first/Storage/variables/InfiniteUpperBound). |
| [SqliteStorageDeps](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/SqliteStorageDeps)                           | -                                                                                                                                                                                                                                                     |
| [StorageInsertTimestampStrategy](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/StorageInsertTimestampStrategy) | -                                                                                                                                                                                                                                                     |
| [ValidDbChangeValues](https://evolu.dev/docs/api-reference/common/local-first/Storage/type-aliases/ValidDbChangeValues)                       | -                                                                                                                                                                                                                                                     |

## Variables

| Variable                                                                                                | Description                                                                                                                                                                                                                                               |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [DbChange](https://evolu.dev/docs/api-reference/common/local-first/Storage/variables/DbChange)                       | A DbChange is a change to a table row. Together with a unique [Timestamp](https://evolu.dev/docs/api-reference/common/local-first/Timestamp/variables/Timestamp), it forms a [CrdtMessage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage). |
| [DbChangeValues](https://evolu.dev/docs/api-reference/common/local-first/Storage/variables/DbChangeValues)           | -                                                                                                                                                                                                                                                         |
| [fingerprintSize](https://evolu.dev/docs/api-reference/common/local-first/Storage/variables/fingerprintSize)         | -                                                                                                                                                                                                                                                         |
| [InfiniteUpperBound](https://evolu.dev/docs/api-reference/common/local-first/Storage/variables/InfiniteUpperBound)   | -                                                                                                                                                                                                                                                         |
| [RangeType](https://evolu.dev/docs/api-reference/common/local-first/Storage/variables/RangeType)                     | -                                                                                                                                                                                                                                                         |
| [ValidDbChangeValues](https://evolu.dev/docs/api-reference/common/local-first/Storage/variables/ValidDbChangeValues) | -                                                                                                                                                                                                                                                         |
| [zeroFingerprint](https://evolu.dev/docs/api-reference/common/local-first/Storage/variables/zeroFingerprint)         | A fingerprint of an empty range.                                                                                                                                                                                                                          |