DNS caching for humans
Project description
Velocity is an elegant DNS caching library for Python. It intercepts all the DNS/Protocol resolution calls and caches them. That's it, everything that makes network connections gets a performance boost.
Liked the project? Buy me a coffee.
Documentation
- Installation
- Getting started
- Managing local cache
- Manually caching hostnames
- Accessing cache databases
Installation
The recommended way to install velocity is by using pip as follows:
pip install velocity
Getting started
Velocity just needs to be imported to be activated. For example, the following program will start using cached DNS responses after the first request.
import requests
import velocity
for i in range(10):
requests.get('https://s0md3v.github.io')
Important: If you are using threads, consider caching the hostnames manually to prevent the database getting affected from race conditions.
Managing local cache
The cache can be stored locally. None of the following methods return anything or take arguments, just call them at will.
import velocity
velocity.flush_db() # deletes the local cache
velocity.save_db() # saves the in-memory cache locally
velocity.load_db() # loads the local cache into memory
Manually caching hostnames
A hostname can be cached manually as follows:
import velocity
velocity.cache(hostname)
Note: IPv6 address are mapped to IPv4 addresses by default, which shouldn't be a problem. To avoid this behaviour and use IPv6 address instead, add an reachable port number as
velocity.cache(hostname, port)
Accessing database
In-memory cache databases can be accessed with their respective variable names.
velocity.dns_cache
: Contains {hostname:ip} pairsvelocity.addr_cache
: Contains {hostname:getaddrinfo_object} pairs
Contributions & License
Feel free to report any bugs you encounter, request features, give suggestions and fix bugs.
Pull requests that do not imrpove velocity as a program will not be accepted. Such as typo fixes, adding .gitignore
file,
pep8 styled code structure etc.
Licensed under the GPLv3, see LICENSE for more information.
Liked the project?
You can support the developer by leaving a tip.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file velocity-0.0.1.tar.gz
.
File metadata
- Download URL: velocity-0.0.1.tar.gz
- Upload date:
- Size: 17.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.17rc1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ced3aea1f4b696472c65064c0d06a47dccac2b297b6383b9bc3592eae5a2f8e |
|
MD5 | a77eb40529180d22183078b5f40e81e2 |
|
BLAKE2b-256 | af3d45356d635c33fcbe375bb8cb11e2c419976f2e66bf14652ab6639a745536 |