Fetches and caches ETF data daily, from csv download or api, and saves the data to a parquet file https://api.NexVeridian.com
Find a file
2023-11-24 03:40:18 +00:00
.cargo 0.3.11 2023-06-29 00:39:46 +00:00
.devcontainer anyhow 2023-11-21 19:07:47 +00:00
.github/workflows anyhow 2023-11-21 19:07:47 +00:00
.vscode 0.2.2 2023-06-08 03:25:11 +00:00
src header 2023-11-24 03:40:18 +00:00
tests 21shares 2023-11-21 20:20:58 +00:00
.dockerignore 1.2.0 2023-11-20 11:41:23 -08:00
.gitignore 1.0.0 2023-07-24 16:20:14 -07:00
Cargo.toml 21shares 2023-11-21 20:20:58 +00:00
CONTRIBUTING.md 1.2.0 2023-11-20 11:41:23 -08:00
docker-compose.dev.yml arkvx 2023-11-22 00:42:08 +00:00
docker-compose.yml arkvx 2023-11-22 00:42:08 +00:00
Dockerfile 1.0.0 2023-07-24 16:20:14 -07:00
LICENSE-Apache 1.2.0 2023-11-20 11:41:23 -08:00
LICENSE-MIT 1.2.0 2023-11-20 11:41:23 -08:00
NOTES.md 1.0.0 2023-07-24 16:20:14 -07:00
README.md 1.2.0 2023-11-20 11:41:23 -08:00

Fetches and caches ETF data daily, from csv download or api, and saves the data in parquet format

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

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,
}

Dev Install

Dev Containers

Install docker, vscode and the Dev Containers Extension

git clone

Ctrl+Shift+P Dev Containers: Open Folder in Container

Run code with F5 or cargo run

Run tests with cargo t

Docker Compose

git clone

docker compose -f docker-compose.dev.yml build && docker compose -f docker-compose.dev.yml up

Remove the cargo cache for buildkit with docker builder prune --filter type=exec.cachemount

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