mirror of
https://github.com/thisago/unifetch
synced 2026-01-14 13:21:45 +00:00
No description
| examples | ||
| src | ||
| tests | ||
| .gitignore | ||
| changelog.md | ||
| config.nims | ||
| license | ||
| readme.md | ||
| unifetch.nimble | ||
Unifetch
Multi backend HTTP fetching
About - Features - Why? - Usage - License
Warning
Not all backends are implemented.
About
Unified fetching
Features
- Supported backends
- C-like
- Javascript
- Web (async XMLHttpRequest)
- NodeJS (std http/https)
- Userscript (GM API)
- Sharable request caching over backends and others binaries
- Request Curl representation
Why?
Compile the same code to any backend with extra features!
Development features
Also, Unifetch provides you helpful features for development purposes
Curl representation
If some request isn't worked as expected for some reason, you can enable this
feature with -d:unifetchShowCurlRepr and analyze the curl request externally!
Persistent caching
You can enable a persistent request caching with -d:unifetchCache=/tmp/unifetchCache.
All requests would be saved into specified directory and skip when the parameters
is exactly the same and cache exists.
In JS-web backend the cache is stored in LocalStorage, every request saves a new entry
Usage
import pkg/unifetch
echo fetch "https://example.com"
or
import pkg/unifetch
let
uni = newUniClient()
resp = await uni.get("https://example.com")
echo resp.body
TODO
- Javascript Backend
- Userscript (GM API)
- Implement proxy at NodeJS backend
- Add tests
- Production ready caching (without response parameters or encrypting it) with optional expiration
- Optional runtime only cache
- Disable SSL checking option for NodeJS
License
This library is licensed over MIT license!