An implementation of the aurweb (v6) - /rpc - REST API service in go
goaurrpc allows you to run your own self-hosted aurweb /rpc endpoint.
This project implements the /rpc interface (REST API; version 5) as described here.
In it's default configuration, package data is being downloaded/refreshed from the AUR every 5 minutes.
The data is entirely held in-memory as opposed to storing it in a database for example.
This avoids the need to make heavy database queries for each request.
For a performance comparison, see Benchmarks
- Download repository
git clone https://github.com/moson-mo/goaurrpc.git
cd goaurrpc
- Build with:
./build.sh
- This will create a binary
goaurrpc
See sample.conf
file. The config file can be loaded by specifying "-c" parameter when running goaurrpc.
For example: ./goaurrpc -c sample.conf
.
If this parameter is not passed, the default config will be used (sample.conf contains the defaults).
Feel free to make use of the following public instance of goaurrpc:
- Extend request types (see v5ext branch)
- Admin REST-API to be able to control goaurrpc at runtime, for example:
- reload data
- get statistics (memory consumption, rate limits, etc.)
- manage rate-limits
- manage search-cache
- CLI/TUI tool for administration (making use of the admin api)