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/sqlitev1.49.1 for SQLite KVS backend - Remove AWS SDK v2 dependencies (moved to omni-aws)
- Bump
github.com/grokify/mogofrom 0.74.0 to 0.74.2 - Bump
golang.org/x/cryptofrom 0.49.0 to 0.50.0 - Bump
github.com/klauspost/compressfrom 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¶
3. For S3 Users¶
If you use the S3 backend, add the omni-aws package:
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.