Skip to content
forked from moson-mo/goaurrpc

An implementation of the aurweb (v6) - /rpc - REST API service in go

License

Notifications You must be signed in to change notification settings

HRKings/goaurrpc

 
 

Repository files navigation

goaurrpc

Release GitHub Workflow Status Coverage Go Report Card

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

How to build

  • Download repository git clone https://github.com/moson-mo/goaurrpc.git
  • cd goaurrpc
  • Build with: ./build.sh
  • This will create a binary goaurrpc

Config file

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).

Public endpoint

Feel free to make use of the following public instance of goaurrpc:

HTTP / HTTPS

Future plans / ideas

  • 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)

About

An implementation of the aurweb (v6) - /rpc - REST API service in go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 98.9%
  • Other 1.1%