All Projects → donutloop → httpcache

donutloop / httpcache

Licence: MIT License
An HTTP server that proxies all requests to other HTTP servers and this servers caches all incoming responses objects

Programming Languages

go
31211 projects - #10 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to httpcache

sCache
Kolay PHP Cache sistemi sadece 1 satırda cache sisteminizi kurun.
Stars: ✭ 50 (+117.39%)
Mutual labels:  cache
deflix-stremio
Deflix addon for Stremio
Stars: ✭ 31 (+34.78%)
Mutual labels:  cache
personJudge
personJudge System 网站预览---->http://47.106.235.227 (账号111,密码12345) 后端:SpringBoot/JPA/mysql/cache/前后端分离(nginx做静态转发)/swagger 前端:bootstrap+Jquery及其插件:jquery-cookie,toastr,steps,validate,wnumb,nouislider,DataTables,layer,chosen,echarts
Stars: ✭ 35 (+52.17%)
Mutual labels:  cache
AppleCache
Apple Content Cache Reverse Engineering
Stars: ✭ 82 (+256.52%)
Mutual labels:  cache
git-cache-http-server
A caching Git HTTP server
Stars: ✭ 65 (+182.61%)
Mutual labels:  cache
gotcha
[Not Safe For Production] gotcha: inmemory-cache in Go (Golang) with customizable algorithm
Stars: ✭ 13 (-43.48%)
Mutual labels:  cache
node-backend-template
A template for NodeJS backend projects
Stars: ✭ 19 (-17.39%)
Mutual labels:  cache
lambda-cache
Python utility for caching in Lambda Functions
Stars: ✭ 28 (+21.74%)
Mutual labels:  cache
rememberable
Laravel Traits for fast integration of model caching
Stars: ✭ 28 (+21.74%)
Mutual labels:  cache
correios-java-sdk
Correios Java SDK
Stars: ✭ 28 (+21.74%)
Mutual labels:  webservice
bk flutter image
flutter image,降低内存使用
Stars: ✭ 32 (+39.13%)
Mutual labels:  cache
justreq
A caching proxy server for testing interface of HTTP or HTTPS. A never offline testing interface server. A mock server
Stars: ✭ 15 (-34.78%)
Mutual labels:  cache
storage
Go package for abstracting local, in-memory, and remote (Google Cloud Storage/S3) filesystems
Stars: ✭ 49 (+113.04%)
Mutual labels:  cache
httoop
HTTOOP - a fully object oriented HTTP protocol library written in python
Stars: ✭ 15 (-34.78%)
Mutual labels:  webservice
express-view-cache
Unobtrusive solution to express framework - cache rendered page, without database requests and rendering.
Stars: ✭ 20 (-13.04%)
Mutual labels:  cache
magento2-LiteSpeed LiteMage
LiteMage Cache Extension for Magento 2
Stars: ✭ 27 (+17.39%)
Mutual labels:  cache
WP-Performance
Speed optimization plugin for Wordpress
Stars: ✭ 22 (-4.35%)
Mutual labels:  cache
openmrs-module-webservices.rest
Provides RESTful web services for OpenMRS
Stars: ✭ 68 (+195.65%)
Mutual labels:  webservice
codeigniter-cache-helper
📤 A CodeIgniter output cache helper.
Stars: ✭ 19 (-17.39%)
Mutual labels:  cache
moka
A high performance concurrent caching library for Rust
Stars: ✭ 346 (+1404.35%)
Mutual labels:  cache

httpcache

Build Status Coverage Status

An HTTP server that proxies all requests to other HTTP servers and this servers caches all incoming responses objects

Backend Requirements

  • golang - The Go Programming Language
  • docker - Build, Manage and Secure Your Apps Anywhere. Your Way.

Prepare GO development environment

Follow install guide to install golang.

Build without docker

mkdir -p $GOPATH/src/github.com/donutloop/ && cd $GOPATH/src/github.com/donutloop/

git clone [email protected]:donutloop/httpcache.git

cd httpcache

go build ./cmd/httpcache

Build with docker

mkdir -p $GOPATH/src/github.com/donutloop/ && cd $GOPATH/src/github.com/donutloop/

git clone [email protected]:donutloop/httpcache.git

docker build .

Usage

USAGE
  httpcache [flags]

FLAGS
  -cap 100          capacity of cache
  -cert server.crt  TLS certificate
  -expire 5         the items in the cache expire after or expire never
  -http :80         serve HTTP on this address (optional)
  -key server.key   TLS key
  -rbcl 524288000   response size limit
  -tls              serve TLS on this address (optional)

Usage of cache from outside (GO Example)

...
transport := &http.Transport{
    Proxy: SetProxyURL(proxyServer.URL), // Set url of http cache 
    DialContext: (&net.Dialer{
        Timeout:   30 * time.Second,
        KeepAlive: 30 * time.Second,
        DualStack: true,
    }).DialContext,
    MaxIdleConns:          100,
    IdleConnTimeout:       90 * time.Second,
    TLSHandshakeTimeout:   10 * time.Second,
    ExpectContinueTimeout: 1 * time.Second,
}

client = &http.Client{
    Transport: transport,
}

client.Do(req)
...

Run container

It's expose port 8000 and run a spefici container by id

sudo docker run  -p 8000:8000 {{container_id}} 
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].