| .cargo | ||
| .github/workflows | ||
| src | ||
| tests | ||
| .dockerignore | ||
| .gitignore | ||
| .rustfmt.toml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| docker-compose.dev.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| LICENSE-Apache | ||
| LICENSE-MIT | ||
| NOTES.md | ||
| README.md | ||
Fetches and caches ETF data daily, from csv download or api, and saves the data to a parquet file
The code for the REST API is github.com/NexVeridian/ark-invest-api-rust and is hosted at api.NexVeridian.com
Not affiliated with Ark Invest
Install
Copy docker-compose.yml
Create data folder next to docker-compose.yml
├───data
│ └───parquet
├───docker-compose.yml
docker compose up --pull always
If building the parquet file from the first time use: ARK_SOURCE=ApiFull or ARK_SOURCE=ArkFundsIoFull
Afterwards use ARK_SOURCE=ApiIncremental
Changing the data source
In docker-compose.yml, change the data source by changing the environment variable
environment:
- ARK_SOURCE=ApiIncremental
Env string ARK_SOURCE must be in the enum Source
pub enum Source {
// Reads Parquet file if exists
Read,
// From ARK Invest
Ark,
// From api.NexVeridian.com
#[default]
ApiIncremental,
// From api.NexVeridian.com, not usually nessisary, use ApiIncremental
ApiFull,
// From arkfunds.io/api, avoid using, use ApiIncremental instead
ArkFundsIoIncremental,
// From arkfunds.io/api, avoid using, use ApiFull instead
ArkFundsIoFull,
}
License
All code in this repository is dual-licensed under either License-MIT or LICENSE-APACHE at your option. This means you can select the license you prefer. Why dual license