Categorygithub.com/flamego/cache
modulepackage
1.5.1
Repository: https://github.com/flamego/cache.git
Documentation: pkg.go.dev

# README

cache

GitHub Workflow Status Codecov GoDoc Sourcegraph

Package cache is a middleware that provides the cache management for Flamego.

Installation

The minimum requirement of Go is 1.18.

go get github.com/flamego/cache

Getting started

package main

import (
	"net/http"
	"time"

	"github.com/flamego/cache"
	"github.com/flamego/flamego"
)

func main() {
	f := flamego.Classic()
	f.Use(cache.Cacher())
	f.Get("/set", func(r *http.Request, cache cache.Cache) error {
		return cache.Set(r.Context(), "cooldown", true, time.Minute)
	})
	f.Get("/get", func(r *http.Request, cache cache.Cache) string {
		v, err := cache.Get(r.Context(), "cooldown")
		if err != nil && err != os.ErrNotExist {
			return err.Error()
		}

		cooldown, ok := v.(bool)
		if !ok || !cooldown {
			return "It has been cooled"
		}
		return "Still hot"
	})
	f.Run()
}

Getting help

License

This project is under the MIT License. See the LICENSE file for the full license text.

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

Cacher returns a middleware handler that injects cache.Cache into the request context, which is used for manipulating cache data.
FileIniter returns the Initer for the file cache store.
GobEncoder is a cache data encoder using Gob.
MemoryIniter returns the Initer for the memory cache store.

# Structs

FileConfig contains options for the file cache store.
MemoryConfig contains options for the memory cache store.
Options contains options for the cache.Cacher middleware.

# Interfaces

Cache is a cache store with capabilities of setting, reading, deleting and GC cache data.

# Type aliases

Decoder is a decoder to decode binary to cache data.
Encoder is an encoder to encode cache data to binary.
Initer takes arbitrary number of arguments needed for initialization and returns an initialized cache store.