- What is Squid?
- What is Internet object caching?
- Why is it called Squid?
- What is the latest version of Squid?
- Who is responsible for Squid?
- Where can I get Squid?
- What Operating Systems does Squid support?
- What Squid mailing lists are available?
- What other Squid-related documentation is available?
- What's the legal status of Squid?
- How to add a new Squid feature, enhance, of fix something?
- Can I pay someone for Squid support?
- Squid FAQ contributors
- About This Document
- Want to contribute?
What is Squid?
Squid is a high-performance proxy caching server for web clients, supporting FTP, gopher, and HTTP data objects. Squid handles all requests in a single, non-blocking, I/O-driven process over IPv4 or IPv6.
Squid keeps meta data and especially hot objects cached in RAM, caches DNS lookups, supports non-blocking DNS lookups, and implements negative caching of failed requests.
Squid supports SSL, extensive access controls, and full request logging. By using the lightweight Internet Cache Protocol, Squid caches can be arranged in a hierarchy or mesh for additional bandwidth savings.
Squid consists of a main server program squid, some optional programs for rewriting requests and performing authentication, and some management and client tools.
Squid is originally derived from the ARPA-funded Harvest project. Since then it has gone through many changes and has many new features.
What is Internet object caching?
Internet object caching is a way to store requested Internet objects (i.e., data available via the HTTP, FTP, and gopher protocols) on a system closer to the requesting site than to the source. Web browsers can then use the local Squid cache as a proxy HTTP server, reducing access time as well as bandwidth consumption.
Why is it called Squid?
Harris' Lament says, "All the good ones are taken."
We needed to distinguish this new version from the Harvest cache software. Squid was the code name for initial development, and it stuck.
What is the latest version of Squid?
This is best answered by the the Squid Versions page where you can also download the sources.
Who is responsible for Squid?
Squid is the result of efforts by numerous individuals from the Internet community.
- The Squid Software Foundation provides representation and oversight of the Squid Project.
The core team and main contributors list is at WhoWeAre.
- A list of our many excellent code contributors can be seen in the CONTRIBUTORS file within each copy of published sources.
Where can I get Squid?
Many sushi bars also have Squid.
What Operating Systems does Squid support?
The software is designed to operate on any modern system, and is known to work on at least the following platforms:
- SCO Unix
- OSF/Digital Unix/Tru64
Windows: (Cygwin and MinGW)
- Windows 2000 Server
- Windows NT
- Windows XP Server
- Windows 2003 Server
- Windows Vista Server
If you would like your favorite OS to join the list above, please try to build the latest Squid on it and send any feedback to the squid-dev mailing list.
What Squid mailing lists are available?
That question is best answered by the official mailing lists page at http://www.squid-cache.org/Support/mailing-lists.html
I can't figure out how to unsubscribe from your mailing list.
All of our mailing lists have "-subscribe" and "-unsubscribe" addresses that you must use for subscribe and unsubscribe requests. To unsubscribe from the squid-users list, you send a message to <squid-users-unsubscribe AT squid-cache DOT org>.
What other Squid-related documentation is available?
The Squid home page for information on the Squid software
The IRCache Mesh gives information on our operational mesh of caches.
The Squid FAQ (uh, you're reading it).
Authoritative Config Guides are available in the menu on squid-cache.org
Squid Programmers Guide. Yeah, its extremely incomplete. I assure you this is the most recent version. Please send any description updates to the <squid-dev AT squid-cache DOT org> mailing list
RFC 2186 ICPv2 -- Protocol
RFC 2187 ICPv2 -- Application
What's the legal status of Squid?
Squid is copyrighted by The Squid Software Foundation and contributors. Squid copyright holders are listed in the CONTRIBUTORS file.
Squid is Free Software, distributed under the terms of the GNU General Public License, version 2 (GPLv2). Squid includes various software components distributed under several GPLv2-compatible open source licenses listed in the CREDITS file.
Squid contributors and components change with Squid software. The appropriate CONTRIBUTORS and CREDITS files can be found in the corresponding Squid sources, available for download.
Official Squid artwork distribution terms are detailed elsewhere.
How to add a new Squid feature, enhance, of fix something?
Adding new features, enhancing, or fixing Squid behavior usually requires source code modifications. Several options are generally available to those who need Squid development:
Wait for somebody to do it: Waiting is free but may take forever. If you want to use this option, make sure you file a bugzilla report describing the bug or enhancement so that others know what you need. Posting feature requests to a mailing list is often useful because it can generate interest and discussion, but without a bugzilla record, your request may be overlooked or forgotten.
Do it yourself: Enhancing Squid and working with other developers can be a very rewarding experience. However, this option requires understanding and modifying the source code, which is getting better, but it is still very complex, often ugly, and lacking documentation. These obstacles affect the required development effort. In most cases, you would want your changes to be incorporated into the official Squid sources for long-term support. To get the code committed, one needs to cooperate with other developers. It is a good idea to describe the changes you are going to work on before diving into development. Development-related discussions happen on squid-dev mailing list. Documenting upcoming changes as a bugzilla entry or a wiki feature page helps attract contributors or sponsors.
Pay somebody to do it: Many organizations and individuals offer commercial Squid development services. When selecting the developer, discuss how they plan to integrate the changes with the official Squid sources and consider the company past contributions to the Squid project. Please see the "Can I pay?" entry for more details.
The best development option depends on many factors. Here is some project dynamics information that may help you pick the right one: Most Squid features and maintenance is done by individual contributors, working alone or in small development/consulting shops. In the early years (1990-2000), these developers were able to work on Squid using their free time, research grants, or similarly broad-scope financial support. Requested features were often added on-demand because many folks could work on them. Most recent (2006-2008) contributions, especially large features, are the result of paid development contracts, reflecting both the maturity of software and the lack of "free" time among active Squid developers.
Can I pay someone for Squid support?
Yes. Please see Squid Support Services. Unfortunately, that page is poorly maintained and has many stale/bogus entries, but we do plan to improve it in the foreseeable future. Please do not email the Squid Project asking for official recommendations -- the Project itself cannot recommend specific Squid administrators or developers due to various conflicts of interests. However, if the Project could make official referrals, they would probably form a (tiny) subset of the listed entries.
Besides the Services page, you can post a Request For Proposals to squid-users (Squid administration and integration) or squid-dev (Squid development) mailing list. A good RFP contains enough details (including your deadlines and Squid versions) for the respondents to provide a ballpark cost estimate. Expect private responses to your RFPs and avoid discussing private arrangements on the public mailing lists. Please do not email RFPs to the Project info@ alias for the reasons discussed in the previous paragraph.
You can also donate money or equipment to the Squid project.
Squid FAQ contributors
The following people have made contributions to this document:
Dodjie Nava, Jonathan Larmour, Cord Beermann, Tony Sterrett, Gerard Hynes, Katayama, Takeo, Duane Wessels, K Claffy, Paul Southworth, Oskar Pearson, Ong Beng Hui, Torsten Sturm, James R Grinter, Rodney van den Oever, Kolics Bertold, Carson Gaspar, Michael O'Reilly, Hume Smith, Richard Ayres, John Saunders, Miquel van Smoorenburg, David J N Begley, Kevin Sartorelli, Andreas Doering, Mark Visser, tom minchin, Jens-S. Vöckler, Andre Albsmeier, Doug Nazar, HenrikNordstrom, Mark Reynolds, Arjan de Vet, Peter Wemm, John Line, Jason Armistead, Chris Tilbury, Jeff Madison, Mike Batchelor, Bill Bogstad, Radu Greab, F.J. Bosscha, Brian Feeny, Martin Lyons, David Luyer, Chris Foote, Jens Elkner, Simon White, Jerry Murdock, Gerard Eviston, Rob Poe, FrancescoChemolli, ReubenFarrelly AlexRousskov AmosJeffries
About This Document
This FAQ was maintained for a long time as an XML Docbook file. It was converted to a Wiki in March 2006. The wiki is now the authoritative version.
Want to contribute?
We always welcome help keeping the Squid FAQ up-to-date. If you would like to help out, please register with this Wiki and type away. Please also send a note to the wiki operator <wiki AT kinkie DOT it> to inform him of your changes.
Back to the SquidFaq