Crate lowestbins

Crate lowestbins 

Source
Expand description

Logo

GitHub issues GitHub forks GitHub stars GitHub license Website Discord GitHub Sponsors

forthebadge forthebadge

§Lowestbins-rs

A fast and effecient lowestbins implementation this uses parrallel requests to fetch all lowestbins in less than 2.5 SECONDS and uses the hyper server allowing for practically unlimited requests per second while only using 50mb of ram!
Lowestbins-rs is used by Skytils for the lowestbins feature.

§Hosted Instance

If you are using this in a project please credit me! or sponsor me on github github.com/sponsors/Tricked-dev

§Using in your code

§Javascript

node:

const fetch = require("undici"); // node-fetch also works
let json = await fetch("https://lb.tricked.pro/lowestbins").then((res) =>
  res.json()
);

console.log(json["ENCHANTMENT_ULTIMATE_SWARM_2"]);

web/deno:

let json = await fetch("https://lb.tricked.pro/lowestbins").then((res) =>
  res.json()
);
console.log(json["ENCHANTMENT_ULTIMATE_SWARM_2"]);

§Python

import requests
json = requests.get("https://lb.tricked.pro/lowestbins").json()
print(json["ENCHANTMENT_ULTIMATE_SWARM_2"])

§Api endpoints

§/lowestbins | /lowestbins.json | /auctions/lowestbins

Returns a json object with all lowestbins

§/lowestbins.txt

Returns a text file with all lowestbins easier to parse and smaller in size

§/auction/{item} | lowestbin/{item}

Returns the price of a item as number this endpoint can be used to get more up to date prices due to it not being cached as often

§/metrics

Returns prometheus metrics of the prices

§/

Returns basic data about the api and update time

§Usage

§Docker

docker run  --name lowestbins -p 8080:8080 -e HOST=0.0.0.0 -e UPDATE_SECONDS=120 -d ghcr.io/tricked-dev/lowestbins:latest

§Building

  • If you’re on Linux, you can go to releases and download the binary
  • Windows/MacOS: you need to install cargo and run cargo build --release and the exe/binary should be in the ./target/release/lowestbins.

§Config Options

Env variables

PORT # The port to run the server on
HOST # The host to run the server on
SAVE_TO_DISK # set to 0 to not save the auctions to disk
OVERWRITES # Overwrite values format: `BLESSED_BAIT:200,ROCK_CANDY:6000,NON_EXISTENT_ITEM:200`
UPDATE_SECONDS # The amount of seconds to wait before updating the lowestbins
WEBHOOK_URL # The webhook url used for reporting the requests (discord/discord compatible)
RUST_LOG # The log level lowestbins=debug recommended

§Features

  • NBT parsing
  • Fetching auctions and returning the lowest bin
  • hyper server
  • skytils compatible
  • metrics endpoint /metrics
  • rust

§Todo

  • use quiche for faster quests
  • use cargo pgo to optimize binaries

Licensed under the Apache 2 License

Modules§

error
fetch
nbt_utils
server
webhook

Structs§

Conf

Constants§

SOURCE
SPONSOR

Statics§

API_URL
AUCTIONS
CONFIG
HTTP_CLIENT
LAST_UPDATED

Functions§

calc_next_update
set_last_updates