Files
agentik/storage-inmemory/README.md
T
subochev 0fdc12695e
ci / JVM build + tests (push) Failing after 1m57s
docs: per-module README + root navigation hub + CI/release workflows
- README.md в каждом подмодуле: для библиотек — описание проблемы,
  подключение через maven-central/caffeine, версии в gradle/libs.versions.toml.
  Для запускаемых модулей — команды запуска + переменные среды с дефолтами.
- Корневой README.md переписан как навигационный хаб: что это, где клиенты,
  где серверы, как собрать, как опубликовать.
- build.gradle.kts: per-module POM-description через единую карту в rootProject.extra
  (порядок важен — нужно ДО apply плагина KMP, поэтому beforeEvaluate в subprojects).
- .gitea/workflows/ci.yml (новый): build + jvmTest + shadowJar на PR/push main.
- .gitea/workflows/release.yml (обновлён): публикует библиотеки в caffeine
  Nexus + собирает 3 fatjar'а и крепит их к release как бинарные ассеты.
2026-09-16 16:24:03 +03:00

1.8 KiB
Raw Blame History

:storage-inmemory — pw.binom.agentik.storage.inmemory

In-memory реализация всех 4 сторов из :storage-core. Без платформенного IO, KMP-таргеты полностью. Тред-безопасна через Mutex.

Какую проблему решает

  • Тесты — мгновенный setup/teardown, нет файловой системы, нет JDBC, детерминированное состояние.
  • Embedded-сценарии (Android ART, iOS) где SQLDelight native-драйвер пока недоступен или избыточен.
  • Отладка — можно в рантайме дампить MessageStore.listByConversation() и смотреть что попало в working memory без sqlite3 CLI.

Семантика полностью совпадает с :storage-sqlite: один и тот же контракт :storage-core, одинаковые AutoCloseable, одинаковая тред-безопасность.

Подключение

commonMain {
    implementation("pw.binom.agentik:storage-inmemory:$version")
}

// Использование
val bundle = InMemoryStorageBundle(clock = Clock.System)
val conv = bundle.conversations.upsert(Conversation(id = "test", title = "demo", createdAt = now))
bundle.messages.append(message = UserMessage("hi"), conversationId = conv.id, workingMemoryIndex = 0)

Где смотреть версии

  • version из gradle.properties (version=0.1.0)
  • релизы: https://git.binom.pw/subochev/agentik/releases

Сборка

./gradlew :storage-inmemory:build

KMP-таргеты — полный набор. Зависимости — только :storage-core.