reagent: a simple yet flexible GAE-based web proxy
Go to file
2019-11-08 00:44:04 +08:00
app.yaml server: rework the protocol. 2018-01-04 09:53:16 +08:00
gae.py server: rework the protocol. 2018-01-04 09:53:16 +08:00
proxy.ini Use SNI in response to recent "infrastructure change" in Google. 2018-04-22 20:33:13 +08:00
proxy.py proxy.py: clearer message when GAE returns an HTTP error. 2019-10-14 00:20:56 +08:00
README README: migrate to Gitea, "for obvious reasons". 2019-11-08 00:44:04 +08:00

reagent: a simple yet flexible GAE-based web proxy (v0.0.5)
===========================================================

About
-----

"How do we convince people that in programming simplicity and clarity -- in
 short: what mathematicians call 'elegance' -- are not a dispensable luxury, but
 a crucial matter that decides between success and failure?"
                                                          --- Edsger W. Dijkstra

"Perfection is achieved, not when there is nothing more to add, but when there
 is nothing left to take away."
                                                    --- Antoine de Saint-Exupéry

This is reagent, a GAE-based web proxy that aims to be flexible and efficient,
while keeping the codebase maintainable and auditable.  Many functionalities
(eg. PAC generation, User-Agent manipulation, URL redirection, etc.) from other
GAE-based proxies can be attained using browser extensions or other third-party
software, and are therefore not implemented in reagent.  The commits predating
v0.0.5 of reagent also serve, IMHO, as a practical example for how to reduce a
bloated piece of software into its bare essentials.

Usage
-----

* Install Python 2.7 and pyOpenSSL, and then modify proxy.ini.
$ mkdir server; cp gae.py app.yaml server
$ > upload.sh printf '#!/bin/sh\n%s\n\t%s\n' \
  'exec appcfg.py --noauth_local_webserver' \
  '-A "$1" -V 1 -E "password:p@ssw0rd" update server'
$ sed -n '/^appids/ s/.*= *//p' proxy.ini |
  tr '|' '\n' | parallel -j0 sh ./upload.sh
$ mkdir client; cp gae.py proxy.py proxy.ini client
$ cd client; python2 ./proxy.py proxy.ini
* For reagent to work optimally, use of a poisoning-proof caching DNS service
  (eg. dnscrypt-proxy in conjunction with unbound) is recommended.

Copying
-------

Homepage: <https://gitea.com/CasperVector/reagent>
Based on GoAgent 3.2.3 by Phus Lu <phuslu@hotmail.com>
Based on WallProxy 0.4.0 by Hust Moon <www.ehust@gmail.com>
Based on GAppProxy 2.0.0 by Du XiaoGang <dugang.2008@gmail.com>
Licence: GPL v2 <https://www.gnu.org/licenses/gpl-2.0.html>

Contributers:
  Phus Lu            <phus.lu@gmail.com>
  Hewig Xu           <hewigovens@gmail.com>
  Ayanamist Yang     <ayanamist@gmail.com>
  V.E.O              <V.E.O@tom.com>
  Max Lv             <max.c.lv@gmail.com>
  AlsoTang           <alsotang@gmail.com>
  Christopher Meng   <i@cicku.me>
  Yonsm Guo          <YonsmGuo@gmail.com>
  Parkman            <cseparkman@gmail.com>
  Ming Bai           <mbbill@gmail.com>
  Bin Yu             <yubinlove1991@gmail.com>
  lileixuan          <lileixuan@gmail.com>
  Cong Ding          <cong@cding.org>
  Zhang Youfu        <zhangyoufu@gmail.com>
  Lu Wei             <luwei@barfoo>
  Harmony Meow       <harmony.meow@gmail.com>
  logostream         <logostream@gmail.com>
  Rui Wang           <isnowfy@gmail.com>
  Wang Wei Qiang     <wwqgtxx@gmail.com>
  Felix Yan          <felixonmars@gmail.com>
  Sui Feng           <suifeng.me@qq.com>
  QXO                <qxodream@gmail.com>
  Geek An            <geekan@foxmail.com>
  Poly Rabbit        <mcx_221@foxmail.com>
  oxnz               <yunxinyi@gmail.com>
  Shusen Liu         <liushusen.smart@gmail.com>
  Yad Smood          <y.s.inside@gmail.com>
  Chen Shuang        <cs0x7f@gmail.com>
  cnfuyu             <cnfuyu@gmail.com>
  cuixin             <steven.cuixin@gmail.com>
  s2marine0          <s2marine0@gmail.com>
  Toshio Xiang       <snachx@gmail.com>
  Bo Tian            <dxmtb@163.com>
  Virgil             <variousvirgil@gmail.com>
  hub01              <miaojiabumiao@yeah.net>
  v3aqb              <sgzz.cj@gmail.com>
  Oling Cat          <olingcat@gmail.com>
  Meng Zhuo          <mengzhuo1203@gmail.com>
  zwhfly             <zwhfly@163.com>
  Hubertzhang        <hubert.zyk@gmail.com>
  arrix              <arrixzhou@gmail.com>
  gwjwin             <gwjwin@sina.com>
  Zhuhao Wang        <zhuhaow@gmail.com>
  YFdyh000           <yfdyh000@gmail.com>
  zzq1015            <zzq1015@users.noreply.github.com>
  Zhengfa Dang       <zfdang@users.noreply.github.com>
  haosdent           <haosdent@gmail.com>
  xk liu             <lxk1012@gmail.com>
  Casper Ti. Vector  <caspervector@gmail.com>