GithubHelp home page GithubHelp logo

joker's Introduction

joker

joker helps the caching using the store_id feature of Squid 3.4 or the storeurl_rewrite feature of Squid 2.7.

It uses a plugin model, in which you can support new websites easily without hassling too much with a long chain of if else code.

It should run on any platform that Go supports, like Linux, FreeBSD, OpenBSD, Windows, to name a few.

Install

If you've got Go installed, you can install joker with Go's command line interface:

go get github.com/osmano807/joker

You can test your installation by running joker -version from any folder.

You can use goxc to cross compile joker to another platform.

Prebuilt packages are not offered for the moment.

Setup

I'm currently running on a OpenBSD 5.5-current machine, with the squid-3.4.2p0 package. On my squid.conf I have:

store_id_program /usr/local/sbin/joker -new-format
store_id_children 20 startup=0 idle=1 concurrency=100

acl joker_access_list dstdomain i.imgur.com
acl joker_access_list dstdomain .bp.blogspot.com .blogblog.com
acl joker_access_list dstdomain .glbimg.com
acl joker_access_list dstdomain .gravatar.com
store_id_access allow joker_access_list
store_id_access deny all

For now, the -new-format is required to enable the store_id format, if not, it will be compatible with the storeurl_rewrite feature. It supports concurrency, but I don't have a huge load of traffic to test the optimal options.

ToDo

  • Profile the code and identify any spots for improvement.
  • Create a system to each plugin output his required squid acl.
  • Create more tests on the code.

Remarks

This program is inspired by the inComum project, a similar project.

Also, inspired by the project to create a packaged squid for Windows and the works on the store_id feature on Squid 3-HEAD.

The code is released under the BSD 2-Clause License.

I'm coding to distract myself from problems, or, for fun. I don't have much time to support the code or to help, but feel free to mail me, I'll try to give an reply as soon as possible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.