An open API service indexing awesome lists of open source software.

https://github.com/gofiber/storage

📦 Premade storage drivers for 🚀 Fiber
https://github.com/gofiber/storage

fiber storage

Last synced: 2 months ago
JSON representation

📦 Premade storage drivers for 🚀 Fiber

Awesome Lists containing this project

README

          

---
title: 👋 Welcome
description: 📦 Premade storage drivers for 🚀 Fiber.
sidebar_position: 1
---


Fiber
Fiber










Premade storage drivers that implement the [`Storage`](https://github.com/gofiber/storage/blob/main/storage.go) interface, designed to be used with various [Fiber middlewares](https://github.com/gofiber/fiber/tree/master/middleware).

**Note:** All storages are tested with the latest two [Go version](https://go.dev/doc/devel/release#policy). Older Go versions may also work, but are not guaranteed to be supported.

```go
// Storage interface for communicating with different database/key-value
// providers. Visit https://github.com/gofiber/storage for more info.
type Storage interface {
// GetWithContext gets the value for the given key with a context.
// `nil, nil` is returned when the key does not exist
GetWithContext(ctx context.Context, key string) ([]byte, error)

// Get gets the value for the given key.
// `nil, nil` is returned when the key does not exist
Get(key string) ([]byte, error)

// SetWithContext stores the given value for the given key
// with an expiration value, 0 means no expiration.
SetWithContext(ctx context.Context, key string, val []byte, exp time.Duration) error

// Set stores the given value for the given key along
// with an expiration value, 0 means no expiration.
// Empty key or value will be ignored without an error.
Set(key string, val []byte, exp time.Duration) error

// DeleteWithContext deletes the value for the given key with a context.
// It returns no error if the storage does not contain the key,
DeleteWithContext(ctx context.Context, key string) error

// Delete deletes the value for the given key.
// It returns no error if the storage does not contain the key,
Delete(key string) error

// ResetWithContext resets the storage and deletes all keys with a context.
ResetWithContext(ctx context.Context) error

// Reset resets the storage and delete all keys.
Reset() error

// Close closes the storage and will stop any running garbage
// collectors and open connections.
Close() error
}

```

## 📑 Storage Implementations

- [Aerospike](./aerospike/README.md)
- [ArangoDB](./arangodb/README.md)
- [AzureBlob](./azureblob/README.md)
- [Badger](./badger/README.md)
- [Bbolt](./bbolt)
- [Cassandra](./cassandra/README.md)
- [ClickHouse](./clickhouse/README.md)
- [CloudflareKV](./cloudflarekv/README.md)
- [Coherence](./coherence/README.md)
- [Couchbase](./couchbase/README.md)
- [DynamoDB](./dynamodb/README.md)
- [Etcd](./etcd/README.md)
- [Firestore](./firestore/README.md)
- [LevelDB](./leveldb/README.md) LevelDB Tests Status
- [Memcache](./memcache/README.md)
- [Memory](./memory/README.md)
- [Minio](./minio/README.md)
- [MockStorage](./mockstorage/README.md)
- [MongoDB](./mongodb/README.md)
- [MSSQL](./mssql/README.md)
- [MySQL](./mysql/README.md)
- [NATS](./nats/README.md)
- [Neo4j](./neo4j/README.md)
- [Pebble](./pebble/README.md)
- [Postgres](./postgres/README.md)
- [Redis](./redis/README.md)
- [Ristetto](./ristretto/README.md)
- [Rueidis](./rueidis/README.md)
- [S3](./s3/README.md)
- [ScyllaDB](./scylladb/README.md)
- [SQLite3](./sqlite3/README.md)
- [SurrealDB](./surrealdb/README.md)
- [Valkey](./valkey/README.md)

See the benchmarks under https://gofiber.github.io/storage/benchmarks