Python based URL shortening service
chr (coded under the name chru) is a Python based URL shortening service which uses Flask as a front end, and pysqlw as the SQL backend, to interface with sqlite3.
It can shrink billions of unique URLs with less than 6 characters, run in the background with no human interaction, and it can fly like a bird – or is that Super Man?
- Can shorten several billion (yes!) unique urls to a less than 6 character slug.
- Verifies the shrunk URLs are legitimate, to stop abuse.
- Uses reCAPTCHA to stop spammers from using the service for evil, not good.
- Slugs are the base62 representation of their ID, so they’ll work in all browsers.
- A live chr instance is located at chr.so.
- Python 27 (>=2.7 required because of use of argparse module)
- requests (python-requests)
- Flask (flask)
- Flask KVSession (flask-kvsession)
- recaptcha client (recaptcha-client)
- mattdaemon (mattdaemon>=1.1.0)
- pysqlw (pysqlw>=1.3.0)
To install all of these: pip -r requirements.txt install (if installing from source)
- It’s highly recommended by the chr developers that if you’re putting this in a production environment (read: any computer with a public IP) that you look at the various Flask deployment options, such as putting it behind nginx, lighttpd, or something.
- It’s also recommended that you get your server (nginx, lighttpd, or hell, even Apache) serve out the static folder, rather than letting Flask do it.
- This will take a while to get fully featured, but we have a lot planned.
- jqPlot comes bundled with chr, which is alright as it’s MIT licensed.
Visit the docs page, and click Usage for information on how to run chr.
- Chris Leonello (made jqPlot)