{"id":30855959,"url":"https://github.com/sermetpekin/evdscpp","last_synced_at":"2025-09-07T11:12:11.897Z","repository":{"id":261322131,"uuid":"883353057","full_name":"SermetPekin/evdscpp","owner":"SermetPekin","description":"evdscpp is a C++ library for fast, efficient, and user-friendly interaction with the EVDS API Server. Designed with performance in mind, it provides built-in caching, an Excel export option, and an intuitive user interface for configuring and retrieving data. evdscpp can be extended for integration with other C++ projects and offers options for use","archived":false,"fork":false,"pushed_at":"2024-11-06T13:41:52.000Z","size":179,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-01T08:31:22.179Z","etag":null,"topics":["cbrt","central-bank","cpp","data","edds","evds","evds-api","evdscpp","tcmb","tcmb-api"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SermetPekin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-04T20:18:00.000Z","updated_at":"2025-07-31T19:38:27.000Z","dependencies_parsed_at":"2024-11-05T23:29:09.755Z","dependency_job_id":"3c7b2599-3305-4410-b06e-78da36bff5b5","html_url":"https://github.com/SermetPekin/evdscpp","commit_stats":null,"previous_names":["sermetpekin/evdscpp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SermetPekin/evdscpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SermetPekin%2Fevdscpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SermetPekin%2Fevdscpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SermetPekin%2Fevdscpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SermetPekin%2Fevdscpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SermetPekin","download_url":"https://codeload.github.com/SermetPekin/evdscpp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SermetPekin%2Fevdscpp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274026718,"owners_count":25209740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cbrt","central-bank","cpp","data","edds","evds","evds-api","evdscpp","tcmb","tcmb-api"],"created_at":"2025-09-07T11:11:28.950Z","updated_at":"2025-09-07T11:12:11.881Z","avatar_url":"https://github.com/SermetPekin.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CMake Build and Test](https://github.com/SermetPekin/evdscpp/actions/workflows/cmake-single-platform.yml/badge.svg?1)](https://github.com/SermetPekin/evdscpp/actions/workflows/cmake-single-platform.yml?1)\n\n## evdscpp\n\nTo build use this \n```bash  \n\nmkdir build \ncd build\n\ncmake .. \nmake \n./evdscpp \n\n```\n \n\n# evdscpp\n\n**evdscpp** is a C++ library for fast, efficient, and user-friendly interaction with the EVDS API Server. Designed with performance in mind, it provides built-in caching, an Excel export option, and an intuitive user interface for configuring and retrieving data. `evdscpp` can be extended for integration with other C++ projects and offers options for use as a standalone application.\n\n## Features\n\n- **Fast Data Fetching**: Optimized C++ code enables quick and efficient data retrieval from the EVDS API.\n- **Caching**: Caches results locally to avoid redundant requests, minimizing API calls and improving performance.\n- **Excel Export**: Automatically exports data to Excel format for easy analysis and sharing.\n- **Configuration Support**: Reads configuration files for API keys, date ranges, and other options.\n- **Command-Line Interface**: Simple and flexible CLI for specifying data queries and configuration options.\n- **Extensible for Other Projects**: Can be used as a library in other C++ projects, enabling seamless data access from the EVDS API.\n\n## Build Instructions\n\nTo build `evdscpp`, use the following commands:\n\n```bash\ncd src/build\ncmake ..\nmake\n./evdscpp\n```\n\n\n\n\n## Environment Configuration\n\nThis project uses an `.env` file to store sensitive information, such as your EVDS API key. The `.env` file should be created in the root directory of the project to keep your API keys and other sensitive information secure and organized.\n\n### Example `.env` File\n\nBelow is an example of what your `.env` file might look like. Replace `ABCDEFG` with your actual API key.\n\n```\n# .env file\n\n# EVDS API key for authenticating API requests\nEVDS_APIKEY=ABCDEFG\n```\n\n### Usage\n\nThe program automatically reads the `.env` file and retrieves the `EVDS_APIKEY` value when making requests to the EVDS API. Ensure that this file is present in the root directory before running the program.\n\n\n### How to Get Your EVDS API Key\n\nYou can obtain a free EVDS API key by registering on the EVDS website provided by the Central Bank of Turkey. Visit [EVDS API Documentation and Key Registration](https://evds2.tcmb.gov.tr/index.php?/evds/userDocs) to sign up and receive your API key.\n\n\n\n\n## Example Usage\n\n```bash\n# 1. each index will have its own file :\n./evdscpp TP.DK.USD.A,TP.DK.EUR.A\n\n\n# 2 two indexes in the same file :\n./evdscpp TP.DK.USD.A-TP.DK.EUR.A\n\n# 3. Using indexes with named arguments:\n./evdscpp TP.DK.USD.A,TP.DK.EUR.A --start_date 01-01-2021 --end_date 31-12-2021 --cache true\n\n# Another example with a different index:\n./evdscpp bie_yssk --cache true\n\n# Another example with a 3 different indexes :\n# this will create two different files. One for the first index `bie_yssk` and one for these indexes TP.DK.USD.A-TP.DK.EUR.A \n./evdscpp bie_yssk,TP.DK.USD.A-TP.DK.EUR.A --cache true\n\n# indexes can be read from a text file as well \n./evdscpp example.txt --cache true\n\n\n\n```\n\n\n\n## Manual Compilation\n\nIf you prefer to compile `evdscpp` manually, you can use the following `g++` command. Make sure you have all necessary dependencies, including `libcurl` and `nlohmann-json`, installed and available in your include/library paths.\n\n```bash\ng++ -g -o ./evdscpp ./src/main.cpp -lcurl -I./include -L./extern/nlohmann --std=c++20\n\n```\n\n### Explanation of the Command\n\n- `-g`: Enables debugging information in the compiled binary.\n- `-o ./evdscpp`: Specifies the output path and name of the compiled executable (`./evdscpp`).\n- `./src/main.cpp`: The main source file for your program.\n- `-lcurl`: Links the `libcurl` library, necessary for making HTTP requests.\n- `-L./extern/nlohmann`: Specifies the path to the `nlohmann-json` library. Adjust this path based on your setup.\n- `--std=c++20`: Specifies the C++ standard to use (C++20).\n\nAfter running this command, you should have an executable `evdscpp` located in the current directory.\n\n\n\n## Configuration\n\n`evdscpp` reads configuration parameters directly from the command line. You can specify options such as:\n\n- **`--start_date`**: The start date for the data request (format: DD-MM-YYYY).\n- **`--end_date`**: The end date for the data request (format: DD-MM-YYYY).\n- **`--cache`**: Set to `true` to enable caching, which reduces redundant API requests.\n\nIf no start or end dates are specified, `evdscpp` defaults to a predefined date range.\n\n## Integration with Other C++ Projects\n\n`evdscpp` is designed to be easily integrated into other C++ projects, allowing developers to fetch data from the EVDS API with minimal setup. Simply include the library in your project and use the available functions.\n\n## License\n\nThis project is licensed under the MIT License. See the `LICENSE` file for details.\n\n\n## About This Project\n\nThis project is an open-source data wrapper designed to connect to the EVDS API provided by the Central Bank of the Republic of Türkiye. It enables users to easily access and retrieve economic data through a simplified interface.\n\n**Note:** This project is not affiliated with, endorsed, or supported by the Central Bank of Turkey. It is an independent tool developed solely to assist users in interacting with the EVDS API.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsermetpekin%2Fevdscpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsermetpekin%2Fevdscpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsermetpekin%2Fevdscpp/lists"}