Skip to content

v0.3.0

Release Date: 2026-04-25

Highlights

Organization change: module renamed from github.com/grokify/omnistorage to github.com/plexusone/omnistorage-core with reorganized package structure.

Breaking Changes

This release contains breaking changes due to the organization migration:

Module Rename

The module has been renamed from github.com/grokify/omnistorage to github.com/plexusone/omnistorage-core.

Migration:

// Before
import "github.com/grokify/omnistorage/backend/file"

// After
import "github.com/plexusone/omnistorage-core/object/backend/file"

Package Restructure

All packages have been reorganized under the object/ and kvs/ subsystems:

Old Path New Path
backend/file object/backend/file
backend/memory object/backend/memory
backend/sftp object/backend/sftp
backend/channel object/backend/channel
compress/gzip object/compress/gzip
compress/zstd object/compress/zstd
format/ndjson object/format/ndjson
sync object/sync
multi object/multi

S3 Backend Moved

The S3 backend has been moved to a separate package to keep the core thin:

// Before (in omnistorage)
import "github.com/grokify/omnistorage/backend/s3"

// After (in omni-aws)
import "github.com/plexusone/omni-aws/omnistorage/s3"

See plexusone/omni-aws for the S3 backend and other AWS services.

AWS SDK Removed

AWS SDK v2 dependencies have been removed from the core to keep it lightweight and provider-agnostic. Use the omni-aws package for AWS integrations.

Added

Key-Value Storage Subsystem

A new kvs/ subsystem has been added for key-value storage:

import "github.com/plexusone/omnistorage-core/kvs"

// Store interface
type Store interface {
    Get(ctx context.Context, key string) ([]byte, error)
    Set(ctx context.Context, key string, value []byte, ttl time.Duration) error
    Delete(ctx context.Context, key string) error
    Close() error
}

Available backends:

  • kvs/backend/memory - In-memory storage (ephemeral)
  • kvs/backend/sqlite - SQLite-based persistent storage

Changed

  • MkDocs theme updated to PlexusOne design system with dark mode default
  • Site URL updated to plexusone.github.io/omnistorage-core

Dependencies

  • Add modernc.org/sqlite v1.49.1 for SQLite KVS backend
  • Remove AWS SDK v2 dependencies (moved to omni-aws)
  • Bump github.com/grokify/mogo from 0.74.0 to 0.74.2
  • Bump golang.org/x/crypto from 0.49.0 to 0.50.0
  • Bump github.com/klauspost/compress from 1.18.4 to 1.18.5

Migration Guide

1. Update Import Paths

Replace all imports:

# Using sed (macOS/Linux)
find . -name "*.go" -exec sed -i '' \
  -e 's|github.com/grokify/omnistorage/backend|github.com/plexusone/omnistorage-core/object/backend|g' \
  -e 's|github.com/grokify/omnistorage/compress|github.com/plexusone/omnistorage-core/object/compress|g' \
  -e 's|github.com/grokify/omnistorage/format|github.com/plexusone/omnistorage-core/object/format|g' \
  -e 's|github.com/grokify/omnistorage/sync|github.com/plexusone/omnistorage-core/object/sync|g' \
  -e 's|github.com/grokify/omnistorage/multi|github.com/plexusone/omnistorage-core/object/multi|g' \
  -e 's|github.com/grokify/omnistorage|github.com/plexusone/omnistorage-core/object|g' \
  {} \;

2. Update go.mod

go get github.com/plexusone/omnistorage-core@v0.3.0

3. For S3 Users

If you use the S3 backend, add the omni-aws package:

go get github.com/plexusone/omni-aws

Update imports:

// Before
import "github.com/grokify/omnistorage/backend/s3"

// After
import "github.com/plexusone/omni-aws/omnistorage/s3"

Full Changelog

See CHANGELOG.md for the complete list of changes.