golang-github-djherbis-fscache-dev

golang-github-djherbis-fscache-dev 0.10.1+git20201024.a0daa9e-1

 pool/sid/main/g/golang-github-djherbis-fscache/golang-github-djherbis-fscache-dev_0.10.1+git20201024.a0daa9e-1_all.deb golang-github-djherbis-fscache-dev
Streaming File Cache for #golang
Filename pool/sid/main/g/golang-github-djherbis-fscache/golang-github-djherbis-fscache-dev_0.10.1+git20201024.a0daa9e-1_all.deb
Version0.10.1+git20201024.a0daa9e-1
Age in days709
Release date2024 11. 28.
Size14.04 KB
id106
Namegolang-github-djherbis-fscache-dev
Package
Appname
Essential
Vendor
License
Distributionsid
Suitemain
Sourcegolang-github-djherbis-fscache
Architecturebinary-i386
MultiArch
MaintainerDebian Go Packaging Team
InstalledSize64
PreDepends
Breaks
Enhances
Sectiondevel
Priorityoptional
DescriptionStreaming File Cache for #golang
LongDescriptionfscache GoDoc (https://godoc.org/github.com/djherbis/fscache) Release(https://github.com/djherbis/fscache/releases/latest) Software License(LICENSE.txt) Build Status (https://travis-ci.org/djherbis/fscache)Coverage Status (https://coveralls.io/r/djherbis/fscache?branch=master) GoReport Card (https://goreportcard.com/report/github.com/djherbis/fscache)Usage Streaming File Cache for #golang.fscache allows multiple readers to read from a cache while its beingwritten to. blog post (https://djherbis.github.io/post/fscache/).Using the Cache directly:.```go package main.import ("io" "log" "os" "time""gopkg.in/djherbis/fscache.v0".).func main() { // create the cache, keys expire after 1 hour. c, err :=fscache.New("./cache", 0755, time.Hour) if err != nil {log.Fatal(err.Error())}.// wipe the cache when done defer c.Clean().// Get() and it's streams can be called concurrently but just for example:for i := 0; i < 3; i++ {r, w, err := c.Get("stream") if err != nil {log.Fatal(err.Error())}.if w != nil { // a new stream, write to it.go func(){w.Write([]byte("hello world\n")) w.Close()}()}.// the stream has started, read from it io.Copy(os.Stdout, r)r.Close()}.} ```.A Caching Middle-ware:.```go package main.import("net/http" "time""gopkg.in/djherbis/fscache.v0".).func main(){c, err := fscache.New("./cache", 0700, 0) if err != nil {log.Fatal(err.Error())}handler := func(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, "%v: %s", time.Now(), "hello world")}.http.ListenAndServe(":8080", fscache.Handler(c,http.HandlerFunc(handler))).} ``` Installation sh go get gopkg.in/djherbis/fscache.v0
AutoBuiltPackage
Filenamepool/sid/main/g/golang-github-djherbis-fscache/golang-github-djherbis-fscache-dev_0.10.1+git20201024.a0daa9e-1_all.deb
MD5suma4ccf1e0bcbe3e2c4cf5a26d8d8945cf
SHA1aa49a590cd05bd7dac26be4a926836688ce888e2
SHA2564dfca143c69c82af79353adeef01c72116568dac2b0dded70fd96c42c61812d2
SHA512d0cd24217f8703f43387414d4734586443b5093ed9236f62e2d2d08d58d3952f4c719c790473ac03bb120aeeb63843c6dff031cbbb469114e6611abd81db8484
Size14372
Auto-Built-Package
Homepagehttps://github.com/djherbis/fscache
Provides
Existing
fileMtime2024-11-28 12:35:02
created2021-03-20 02:24:33
updated2024-11-28 11:35:02
golang-github-djherbis-fscache-dev
./
./usr/
./usr/share/
./usr/share/doc/
./usr/share/doc/golang-github-djherbis-fscache-dev/
./usr/share/doc/golang-github-djherbis-fscache-dev/changelog.Debian.gz200
./usr/share/doc/golang-github-djherbis-fscache-dev/copyright403
./usr/share/gocode/
./usr/share/gocode/src/
./usr/share/gocode/src/github.com/
./usr/share/gocode/src/github.com/djherbis/
./usr/share/gocode/src/github.com/djherbis/fscache/
./usr/share/gocode/src/github.com/djherbis/fscache/distrib.go1862
./usr/share/gocode/src/github.com/djherbis/fscache/example_test.go1208
./usr/share/gocode/src/github.com/djherbis/fscache/fileinfo.go893
./usr/share/gocode/src/github.com/djherbis/fscache/fs.go7066
./usr/share/gocode/src/github.com/djherbis/fscache/fscache.go8564
./usr/share/gocode/src/github.com/djherbis/fscache/fscache_test.go10979
./usr/share/gocode/src/github.com/djherbis/fscache/handler.go926
./usr/share/gocode/src/github.com/djherbis/fscache/haunter.go1965
./usr/share/gocode/src/github.com/djherbis/fscache/layers.go2260
./usr/share/gocode/src/github.com/djherbis/fscache/lruhaunter.go2707
./usr/share/gocode/src/github.com/djherbis/fscache/memfs.go2559
./usr/share/gocode/src/github.com/djherbis/fscache/reaper.go978
./usr/share/gocode/src/github.com/djherbis/fscache/server.go3551
./usr/share/gocode/src/github.com/djherbis/fscache/stream.go1130
./
./usr/
./usr/share/
./usr/share/doc/
./usr/share/doc/golang-github-djherbis-fscache-dev/
./usr/share/doc/golang-github-djherbis-fscache-dev/changelog.Debian.gz200
./usr/share/doc/golang-github-djherbis-fscache-dev/copyright403
./usr/share/gocode/
./usr/share/gocode/src/
./usr/share/gocode/src/github.com/
./usr/share/gocode/src/github.com/djherbis/
./usr/share/gocode/src/github.com/djherbis/fscache/
./usr/share/gocode/src/github.com/djherbis/fscache/distrib.go1862
./usr/share/gocode/src/github.com/djherbis/fscache/example_test.go1208
./usr/share/gocode/src/github.com/djherbis/fscache/fileinfo.go893
./usr/share/gocode/src/github.com/djherbis/fscache/fs.go7066
./usr/share/gocode/src/github.com/djherbis/fscache/fscache.go8564
./usr/share/gocode/src/github.com/djherbis/fscache/fscache_test.go10979
./usr/share/gocode/src/github.com/djherbis/fscache/handler.go926
./usr/share/gocode/src/github.com/djherbis/fscache/haunter.go1965
./usr/share/gocode/src/github.com/djherbis/fscache/layers.go2260
./usr/share/gocode/src/github.com/djherbis/fscache/lruhaunter.go2707
./usr/share/gocode/src/github.com/djherbis/fscache/memfs.go2559
./usr/share/gocode/src/github.com/djherbis/fscache/reaper.go978
./usr/share/gocode/src/github.com/djherbis/fscache/server.go3551
./usr/share/gocode/src/github.com/djherbis/fscache/stream.go1130

fscache

GoDoc Release Software License go test Coverage Status Go Report Card

Usage

Streaming File Cache for #golang

fscache allows multiple readers to read from a cache while its being written to. blog post

Using the Cache directly:

package main

import (
	"io"
	"log"
	"os"
	"time"

	"gopkg.in/djherbis/fscache.v0"
)

func main() {

	// create the cache, keys expire after 1 hour.
	c, err := fscache.New("./cache", 0755, time.Hour)
	if err != nil {
		log.Fatal(err.Error())
	}
	
	// wipe the cache when done
	defer c.Clean()

	// Get() and it's streams can be called concurrently but just for example:
	for i := 0; i < 3; i++ {
		r, w, err := c.Get("stream")
		if err != nil {
			log.Fatal(err.Error())
		}

		if w != nil { // a new stream, write to it.
			go func(){
				w.Write([]byte("hello world\n"))
				w.Close()
			}()
		}

		// the stream has started, read from it
		io.Copy(os.Stdout, r)
		r.Close()
	}
}

A Caching Middle-ware:

package main

import(
	"net/http"
	"time"

	"gopkg.in/djherbis/fscache.v0"
)

func main(){
	c, err := fscache.New("./cache", 0700, 0)
	if err != nil {
		log.Fatal(err.Error())
	}

	handler := func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "%v: %s", time.Now(), "hello world")
	}

	http.ListenAndServe(":8080", fscache.Handler(c, http.HandlerFunc(handler)))
}

Installation

go get gopkg.in/djherbis/fscache.v0
VersionDownload/Install countLast hit