diff --git a/storage_versioned_docs/version-badger_v2.x.x/README.md b/storage_versioned_docs/version-badger_v2.x.x/README.md
index 573df7fcb45..532bebabf3e 100644
--- a/storage_versioned_docs/version-badger_v2.x.x/README.md
+++ b/storage_versioned_docs/version-badger_v2.x.x/README.md
@@ -54,6 +54,7 @@ type Storage interface {
- [AzureBlob](./azureblob/README.md)
- [Badger](./badger/README.md)
- [Bbolt](./bbolt)
+- [CloudflareKV](./cloudflarekv/README.md)
- [Coherence](./coherence/README.md)
- [Couchbase](./couchbase/README.md)
- [DynamoDB](./dynamodb/README.md)
@@ -61,6 +62,7 @@ type Storage interface {
- [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)
diff --git a/storage_versioned_docs/version-badger_v2.x.x/cloudflarekv/README.md b/storage_versioned_docs/version-badger_v2.x.x/cloudflarekv/README.md
new file mode 100644
index 00000000000..619103e762e
--- /dev/null
+++ b/storage_versioned_docs/version-badger_v2.x.x/cloudflarekv/README.md
@@ -0,0 +1,114 @@
+---
+id: cloudflarekv
+title: Cloudflare KV
+---
+
+![Release](https://img.shields.io/github/v/tag/gofiber/storage?filter=cloudflarekv*)
+[![Discord](https://img.shields.io/discord/704680098577514527?style=flat&label=%F0%9F%92%AC%20discord&color=00ACD7)](https://gofiber.io/discord)
+![Test](https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-cloudflarekv.yml?label=Tests)
+![Security](https://img.shields.io/github/actions/workflow/status/gofiber/storage/gosec.yml?label=Security)
+![Linter](https://img.shields.io/github/actions/workflow/status/gofiber/storage/linter.yml?label=Linter)
+
+A Cloudflare KV storage driver using [cloudflare/cloudflare-go](https://github.com/cloudflare/cloudflare-go).
+
+**Note: Requires Go 1.21 and above**
+
+### Table of Contents
+
+- [Signatures](#signatures)
+- [Installation](#installation)
+- [Examples](#examples)
+- [Config](#config)
+- [Default Config](#default-config)
+
+### Signatures
+
+```go
+func New(config ...Config) Storage
+func (s *Storage) Get(key string) ([]byte, error)
+func (s *Storage) Set(key string, val []byte, exp time.Duration) error
+func (s *Storage) Delete(key string) error
+func (s *Storage) Reset() error
+func (s *Storage) Close() error
+func (s *Storage) Conn() *cloudflare.API
+```
+
+### Installation
+
+```bash
+go mod init github.com//
+```
+
+And then install the Cloudflare KV implementation:
+
+```bash
+go get github.com/gofiber/storage/cloudflarekv
+```
+
+### Examples
+
+Import the storage package.
+
+```go
+import "github.com/gofiber/storage/cloudflarekv"
+```
+
+You can use the following methods to create storage. The Key must be an API Token generated with at least `Account.Workers KV Storage` permission. Check the [Create API Token](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/) documentation to generate one.
+
+```go
+// Initialize default config
+store := cloudflarekv.New()
+
+store := cloudflarekv.New(cloudflarekv.Config{
+ Key: "",
+ Email: "",
+ AccountID: "fiber",
+ NamespaceID: "fiber",
+ Reset: false,
+})
+
+```
+
+### Config
+
+```go
+type Config struct {
+
+ // Cloudflare Auth Token
+ //
+ // Optional. Default is ""
+ Key string
+
+ // Cloudflare Email
+ //
+ // Optional. Default is ""
+ Email string
+
+ // Account id
+ //
+ // Optional. Default is "fiber"
+ AccountID string
+
+ // Namespace id
+ //
+ // Optional. Default is "fiber"
+ NamespaceID string
+
+ // Reset clears any existing keys in existing Table
+ //
+ // Optional. Default is false
+ Reset bool
+}
+```
+
+### Default Config
+
+```go
+var ConfigDefault = Config{
+ Key: "",
+ Email: "",
+ AccountID: "fiber",
+ NamespaceID: "fiber",
+ Reset: false,
+}
+```
diff --git a/storage_versioned_docs/version-badger_v2.x.x/mockstorage/README.md b/storage_versioned_docs/version-badger_v2.x.x/mockstorage/README.md
new file mode 100644
index 00000000000..89c0513c030
--- /dev/null
+++ b/storage_versioned_docs/version-badger_v2.x.x/mockstorage/README.md
@@ -0,0 +1,171 @@
+---
+id: mockstorage
+title: MockStorage
+---
+
+
+![Release](https://img.shields.io/github/v/tag/gofiber/storage?filter=mockstorage*)
+[![Discord](https://img.shields.io/discord/704680098577514527?style=flat&label=%F0%9F%92%AC%20discord&color=00ACD7)](https://gofiber.io/discord)
+![Test](https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mockstorage.yml?label=Tests)
+![Security](https://img.shields.io/github/actions/workflow/status/gofiber/storage/gosec.yml?label=Security)
+![Linter](https://img.shields.io/github/actions/workflow/status/gofiber/storage/linter.yml?label=Linter)
+
+A mock storage implementation for Fiber. This storage is not persistent and is only used for testing purposes.
+
+**Note: Requires Go 1.21 and above**
+
+## Table of Contents
+- [Signatures](#signatures)
+- [Installation](#installation)
+- [Examples](#examples)
+- [Config](#config)
+- [Default Config](#default-config)
+
+
+## Signatures
+
+### Structs
+
+```go
+type Storage struct {
+ // contains filtered or unexported fields
+}
+
+type Entry struct {
+ Value []byte
+ Exp time.Time
+}
+
+type Config struct {
+ CustomFuncs *CustomFuncs
+}
+
+type CustomFuncs struct {
+ GetFunc func(key string) ([]byte, error)
+ SetFunc func(key string, val []byte, exp time.Duration) error
+ DeleteFunc func(key string) error
+ ResetFunc func() error
+ CloseFunc func() error
+ ConnFunc func() map[string]Entry
+ KeysFunc func() ([][]byte, error)
+}
+```
+
+### Functions
+```go
+// New creates a new Storage instance. You can optionally pass a Config.
+func New(config ...Config) *Storage
+
+// Get retrieves the value associated with the given key.
+func (s *Storage) Get(key string) ([]byte, error)
+
+// Set sets the value for the given key, with an optional expiration duration.
+func (s *Storage) Set(key string, val []byte, exp time.Duration) error
+
+// Delete removes the value associated with the given key.
+func (s *Storage) Delete(key string) error
+
+// Reset clears all values from the storage.
+func (s *Storage) Reset() error
+
+// Close performs any necessary cleanup when the storage is no longer needed.
+func (s *Storage) Close() error
+
+// Conn returns a copy of the current state of the storage.
+func (s *Storage) Conn() map[string]Entry
+
+// Keys returns a list of all keys in the storage.
+func (s *Storage) Keys() ([][]byte, error)
+
+// SetCustomFuncs allows you to set custom functions for the storage operations.
+func (s *Storage) SetCustomFuncs(custom *CustomFuncs)
+```
+
+## Installation
+MockStorage is tested on the 2 last [Go versions](https://golang.org/dl/) with support for modules. So make sure to initialize one first if you didn't do that yet:
+```bash
+go mod init github.com//
+```
+And then install the mockstorage implementation:
+```bash
+go get github.com/gofiber/storage/mockstorage
+```
+
+## Examples
+Import the storage package.
+```go
+import "github.com/gofiber/storage/mockstorage"
+```
+
+You can use the following possibilities to create a storage:
+```go
+// Initialize default config
+store := mockstorage.New()
+
+// Set a value in the storage.
+err := store.Set("key1", []byte("value1"), 0)
+if err != nil {
+ // handle error
+}
+
+// Get a value from the storage.
+val, err := store.Get("key1")
+if err != nil {
+ // handle error
+}
+fmt.Println(string(val)) // prints "value1"
+
+// Delete a value from the storage.
+err = store.Delete("key1")
+if err != nil {
+ // handle error
+}
+
+// Mocking storage operations in tests:
+func TestMyFunction(t *testing.T) {
+ // Create a new instance of MockStorage
+ store := mockstorage.New()
+
+ // Mock the Set function
+ store.SetCustomFuncs(&mockstorage.CustomFuncs{
+ Set: func(key string, val []byte, exp time.Duration) error {
+ if key == "expectedKey" && string(val) == "expectedValue" {
+ return nil
+ }
+ return errors.New("unexpected key or value")
+ },
+ })
+
+ // Call the function you want to test, which should call store.Set
+ err := MyFunction(store)
+
+ // Check that the function behaved as expected
+ if err != nil {
+ t.Errorf("MyFunction returned an error: %v", err)
+ }
+}
+```
+
+> **Note:** In the `mockstorage` package, expiration of data is not handled automatically in the background. The data is only marked as expired and removed when you attempt to `Get()` it after its expiration time. If you're using a custom `Get()` function or accessing the data directly using the `Conn()` function, expired data will not be removed. Keep this in mind when writing your tests.
+
+## Config
+```go
+type Config struct {
+ CustomFuncs *CustomFuncs
+}
+```
+
+## Default Config
+```go
+var ConfigDefault = Config{
+ CustomFuncs: &CustomFuncs{
+ GetFunc: nil,
+ SetFunc: nil,
+ DeleteFunc: nil,
+ ResetFunc: nil,
+ CloseFunc: nil,
+ ConnFunc: nil,
+ KeysFunc: nil,
+ },
+}
+```
diff --git a/storage_versioned_docs/version-badger_v2.x.x/s3/README.md b/storage_versioned_docs/version-badger_v2.x.x/s3/README.md
index 7fa708f0e0a..15890a195e4 100644
--- a/storage_versioned_docs/version-badger_v2.x.x/s3/README.md
+++ b/storage_versioned_docs/version-badger_v2.x.x/s3/README.md
@@ -35,6 +35,7 @@ func (s *Storage) Conn() *s3.Client
// Additional useful methods.
func (s *Storage) CreateBucket(bucket string) error
func (s *Storage) DeleteBucket(bucket string) error
+func (s *Storage) DeleteMany(keys ...string) error
func (s *Storage) SetWithChecksum(key string, val []byte, checksum map[types.ChecksumAlgorithm][]byte) error
```