{"id":20275881,"url":"https://github.com/xnm1/weather-rs","last_synced_at":"2026-06-28T18:31:42.596Z","repository":{"id":200574630,"uuid":"705379048","full_name":"XNM1/weather-rs","owner":"XNM1","description":"⚡ Fast and simple CLI tool for weather🌦️ data fetching from different providers completely written in Rust 🦀","archived":false,"fork":false,"pushed_at":"2023-12-14T20:19:39.000Z","size":519,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-05T06:40:56.582Z","etag":null,"topics":["cli","cli-tool","fetch","fetch-api","hacktoberfest","open-weather-api","rust","tool","weather","weather-app"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/XNM1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2023-10-15T21:03:21.000Z","updated_at":"2024-11-17T03:29:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"551e0f2c-54fc-4eb3-86f5-74ae140a9c9d","html_url":"https://github.com/XNM1/weather-rs","commit_stats":{"total_commits":22,"total_committers":1,"mean_commits":22.0,"dds":0.0,"last_synced_commit":"7a898a602885886e9d93d52f4fb3bdc86cc5b6ad"},"previous_names":["xnm1/weather-rs"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/XNM1/weather-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XNM1%2Fweather-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XNM1%2Fweather-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XNM1%2Fweather-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XNM1%2Fweather-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/XNM1","download_url":"https://codeload.github.com/XNM1/weather-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XNM1%2Fweather-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34900367,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"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":["cli","cli-tool","fetch","fetch-api","hacktoberfest","open-weather-api","rust","tool","weather","weather-app"],"created_at":"2024-11-14T13:11:35.531Z","updated_at":"2026-06-28T18:31:42.580Z","avatar_url":"https://github.com/XNM1.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# weather-rs\n\n🌦️ Fast and simple CLI tool for fetching weather data from different weather API providers 🌏\n\n![Demo](showcase.gif)\n\n## Description\n\nWeather-rs is a lightweight command-line tool designed to quickly fetch weather data from various API providers. It offers a convenient way to check the weather conditions for a specific location, providing real-time and historical data.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Configuration](#configuration)\n- [Features](#features)\n- [Supported Weather API Service Providers](#supported-weather-api-service-providers)\n- [Contributing](#contributing)\n- [Authors](#authors)\n- [Alternatives](#alternatives)\n- [License](#license)\n\n## Installation\n\n### From Release Section\n\nYou can download pre-compiled binaries from the [Release Section](https://github.com/XNM1/weather-rs/releases).\n\n### Using Cargo Package Manager\n\n1. Install Rust and Cargo from the official website: [Rust Installation](https://doc.rust-lang.org/cargo/getting-started/installation.html).\n2. Run the following command to install and compile `weather-rs`:\n\n   ```bash\n   cargo install weather-rs --git 'https://github.com/XNM1/weather-rs'\n   ```\n\n3. Add the `.cargo/bin` directory to your PATH environment variable in your shell or use it directly from the `.cargo/bin` directory.\n\n   - **Fish Shell:**\n     ```fish\n     set -gx PATH $HOME/.cargo/bin $PATH\n     ```\n\n   - **Bash or Zsh:**\n     ```bash\n     export PATH=\"$HOME/.cargo/bin:$PATH\"\n     ```\n     \n   You can use the following commands in the shell for one-time use. Alternatively, you can set them in the appropriate shell configuration file to ensure they persist even after a shell restart. You can now use Cargo binaries seamlessly from the command line without specifying the full path to the `.cargo/bin` directory.\n\n### For Nix Package Manager and NixOS\n\n1. Clone the project from GitHub using the following command:\n\n   ```bash\n   git clone https://github.com/XNM1/weather-rs\n   ```\n\n2. Navigate to the cloned project folder:\n\n   ```bash\n   cd weather-rs\n   ```\n\n3. Build the project using Nix:\n\n   ```bash\n   nix build\n   ```\n\n4. Install the project using Nix Package Manager:\n\n   ```bash\n   nix-env -i ./result\n   ```\n\n### From Source\n\n1. Clone the project from GitHub using the following command:\n\n   ```bash\n   git clone 'https://github.com/XNM1/weather-rs'\n   ```\n\n2. Navigate to the cloned project folder and build the project with the following command:\n\n   ```bash\n   cargo build --release\n   ```\n\n3. You can find the executable binary in `weather-rs/target/release` called `weather-rs`.\n\n## Usage\n\n```plaintext\nFast and simple CLI tool for weather data fetching from different providers\n\nUsage: weather-rs \u003cCOMMAND\u003e\n\nCommands:\n  provider-list    Get a full list of supported providers\n  configure        Configure a provider with the given credentials\n  select-provider  Select an available provider\n  get              Get weather information\n  help             Print this message or the help of the given subcommand(s)\n\nOptions:\n  -h, --help     Print help\n  -V, --version  Print version\n```\n\n1. Check available weather provider APIs using the command:\n\n   ```bash\n   weather-rs provider-list\n   ```\n\n2. Configure weather providers using the command:\n\n   ```bash\n   weather-rs configure \u003cPROVIDER\u003e \u003cAPI_KEY\u003e [-u \u003cURL\u003e]\n   ```\n\n   Example: \n\n   ```bash\n   weather-rs configure 'open-weather' '\u003cyour api key\u003e'\n   ```\n\n3. Select a provider using the command:\n\n   ```bash\n   weather-rs select-provider \u003cPROVIDER\u003e\n   ```\n\n   Example: \n\n   ```bash\n   weather-rs select-provider 'weather-api'\n   ```\n\n4. Get information about weather data using the command:\n\n   ```bash\n   weather-rs get \u003cADDRESS\u003e [-d \u003cDATE\u003e] [--json] [-p \u003cPROVIDER\u003e]\n   ```\n\n   Example: \n\n   ```bash\n   weather-rs get 'London'\n   ```\n\n   Another example: \n\n   ```bash\n   weather-rs get 'London' -d '2023-10-11' --json\n   ```\n\n## Configuration\n\nThe configuration file is located in the following directories:\n\n- Linux: `~/.config/weather-rs/config.toml`\n- MacOS: `~/Library/Preferences/weather-rs/config.toml`\n- Windows: `%USERPROFILE%\\AppData\\Roaming\\weather-rs\\config\\config.toml`\n\nThe configuration file is in TOML format and includes settings for services (URL and API key). For example:\n\n```toml\n[open_weather]\nurl = 'https://api.openweathermap.org/data/2.5/weather'\napi_key = 'your_api_key_here'\n```\n\nYou can also set the selected main weather data provider in the `selected_provider` parameter. Example:\n\n```toml\nselected_provider = 'OpenWeather'\n```\n\nPlease note that the selected provider should be in PascalCase in configuration file and in kebab-case when set from the command line (e.g., `weather-rs select-provider 'open-weather'`).\n\n## Features\n\n🌟 Simple and minimal\n\n🚀 Very fast\n\n🛡️ Safe (written in safe Rust 🦀)\n\n📋 Supports output in JSON format for your scripts and tabular format for a more visually pleasing display\n\n🌍 Supports different weather API service providers\n\n## Supported Weather API Service Providers\n\nAt the moment, the project supports two providers:\n\n1. Open Weather API version 2: https://api.openweathermap.org/data/2.5/weather (provides current weather data).\n\n2. Weather API version 1: https://api.weatherapi.com/v1 (provides current and historical weather data).\n\nMore providers may be added in the future.\n\n## Contributing\n\nContributions are welcome! Please refer to the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information on contribution guidelines.\n\n## Authors\n\n- XNM: [\\[GitHub Profile\\]](https://github.com/XNM1) [\\[LinkedIn Profile\\]](https://www.linkedin.com/in/art-shv/)\n\n## Alternatives\n\nIf you're interested in other weather-related CLI tools, consider checking out these alternatives:\n\n- [wthrr](https://github.com/ttytm/wthrr-the-weathercrab) - Weather companion for the terminal.\n- [wttr](https://github.com/chubin/wttr.in) - The right way to check the weather.\n- [weather](https://github.com/genuinetools/weather) - Weather via the command line.\n- [weather-api](https://github.com/robertoduessmann/weather-api) - A RESTful API to check the weather.\n\n## License\n\nThis project is licensed under the MIT license. For more details, please refer to the [LICENSE](LICENSE) file. 📜\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxnm1%2Fweather-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxnm1%2Fweather-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxnm1%2Fweather-rs/lists"}