ecb-rates/README.md

72 lines
2.0 KiB
Markdown
Raw Normal View History

2025-01-07 17:01:22 +01:00
# ECB Rates
A cli utility to fetch the currency rates against the Euro from the ECB.
## Install
First, make sure that you have the rust toolchain installed. If not, then go to [rustup](https://rustup.rs) to install it.
2025-01-09 16:03:08 +01:00
Now, run the following cargo command:
2025-01-07 17:01:22 +01:00
```sh
2025-01-09 16:03:08 +01:00
cargo install --git https://github.com/lov3b/ecb-rates.git
2025-01-07 17:01:22 +01:00
```
Congratulations! Now the cli binary `ecb-rates` will be in your cargo bin folder.
## Features
2025-01-09 16:00:11 +01:00
#### Fetch as many days as you want
It will fetch any of the following api nodes, and reduce them for you.
2025-01-09 14:11:46 +01:00
- Last available day.
- Last 90 days
- Since the dawn of the *EUR*
#### Display select currencies
- as an ASCII table
- in JSON prettified
- in JSON minified
#### Cache
It features an extensive cache, which will [calculate hollidays](src/holiday.rs) in order to know whether to invalidate it or not.
2025-01-07 17:01:22 +01:00
2025-01-09 16:00:11 +01:00
#### Show the rates in your way
Change the rates for the perspective of any currency with the `--perspective` or `-p` flag.
Flip it from `EUR to ALL` to `ALL to EUR` with the `--invert` or `-i` flag. It will work as expected with the *perspective* option.
#### Fast
It wouldn't be a rust project without being *BLAZINGLY FAST*! When the cache is valid a single day will on my computer be shown in 3 ms. When the cache isn't being used it will be ~90ms. The cache speed will largely depend on your drive, the latter will depend on your network speed. Both options are fast enought to be in a `.bashrc` or `.zshrc`
2025-01-09 15:06:00 +01:00
### Examples
2025-01-07 17:01:22 +01:00
2025-01-09 15:06:00 +01:00
#### Show the original data from ECB
2025-01-09 16:00:11 +01:00
2025-01-09 15:06:00 +01:00
![eur-to-all](screenshots/eur-to-all.png)
2025-01-07 17:01:22 +01:00
2025-01-09 15:06:00 +01:00
#### ...with only select currencies
![eur-to-all](screenshots/eur-to-all-select.png)
#### Put the exchange rate in the perspective of any currency
![usd-to-all](screenshots/usd-to-all.png)
#### Flip it
![all-to-usd](screenshots/all-to-usd.png)
2025-01-07 17:01:22 +01:00
2025-01-09 16:00:11 +01:00
#### Show multiple days
![eur-to-all-multiple-days](screenshots/eur-to-all-multiple-days.png)
2025-01-07 17:01:22 +01:00
## Acknowledgment
2025-01-09 16:00:11 +01:00
The data is (obviously) provided by the [European Central Bank](https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html)