{"id":19299719,"url":"https://github.com/ejoliet/airflow-cli-rust","last_synced_at":"2025-10-26T16:07:38.719Z","repository":{"id":228711387,"uuid":"774704315","full_name":"ejoliet/airflow-cli-rust","owner":"ejoliet","description":"Rust CLI to interface with Airflow REST API","archived":false,"fork":false,"pushed_at":"2024-03-20T03:56:38.000Z","size":4,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-05T22:40:45.910Z","etag":null,"topics":["airflow","api","cli","rest-api","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ejoliet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-03-20T02:48:10.000Z","updated_at":"2024-09-13T11:30:05.000Z","dependencies_parsed_at":"2024-03-20T04:55:25.580Z","dependency_job_id":null,"html_url":"https://github.com/ejoliet/airflow-cli-rust","commit_stats":null,"previous_names":["ejoliet/airflow-cli-rust"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejoliet%2Fairflow-cli-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejoliet%2Fairflow-cli-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejoliet%2Fairflow-cli-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejoliet%2Fairflow-cli-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ejoliet","download_url":"https://codeload.github.com/ejoliet/airflow-cli-rust/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240400942,"owners_count":19795450,"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","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":["airflow","api","cli","rest-api","rust"],"created_at":"2024-11-09T23:12:30.909Z","updated_at":"2025-10-26T16:07:38.645Z","avatar_url":"https://github.com/ejoliet.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Airflow CLI Rust\n\nAirflow CLI Rust is a command-line interface (CLI) application written in Rust, designed to interact with Apache Airflow. It allows users to fetch and display a list of Directed Acyclic Graphs (DAGs) and their runs from an Airflow instance. This tool is particularly useful for developers and administrators who need to quickly check the status of Airflow DAGs without accessing the Airflow web UI.\n\n## Description\n\nThis CLI tool utilizes Airflow's REST API to fetch information about DAGs and DAG runs. It supports basic authentication to ensure secure access to your Airflow instance. Developed with Rust's powerful concurrency features and safety guarantees, Airflow CLI Rust provides a fast and reliable user experience.\n\n## Features\n\n- List all DAGs available in the specified Airflow instance.\n- Fetch and display runs for a specified DAG.\n- Supports basic authentication for secure access to Airflow's REST API.\n\n## Getting Started\n\n### Prerequisites\n\n- Rust programming language environment ([installation guide](https://www.rust-lang.org/tools/install))\n- Access to an Apache Airflow instance with the REST API enabled\n\n### Installing\n\n1. Clone the repository to your local machine:\n\n```bash\ngit clone https://github.com/ejoliet/airflow-cli-rust.git\ncd airflow-cli-rust\n```\n\n2. Build the project using Cargo, Rust's package manager and build system:\n\n```bash\ncargo build --release\n```\n\nThis command compiles the project and generates an executable in `target/release/airflow-cli-rust`.\n\n#### Rust\n\nTo install and run a Rust program like the one provided on macOS, you'll need to follow these steps, including the adjustments for basic authentication with Airflow.\n\n1. Install Rust\nIf you haven't already installed Rust, you can do so by using rustup, which is Rust's official installation method. Open your terminal and run:\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\nThis command downloads and runs the rustup script, which installs the Rust compiler (rustc), the Rust package manager (cargo), and other useful tools. You might need to restart your terminal or source your profile script to ensure that the Rust tools are in your PATH.\n\n### Configuration\n\nBefore running the CLI, ensure you have the URL of your Airflow instance and the credentials for basic authentication. The tool expects these as inputs during runtime.\n\n### Running the Application\n\n#### user and password\n\nYou'll need to setup the environment variable to authenticate against Airflow REST API.\n\n```bash\nexport AIRFLOW_PASSWORD=your_actual_password_here\nexport AIRFLOW_USER=your_actual_user_here\n```\n\nTo start the CLI application, use the following command:\n\n```bash\ncargo run --release\n```\n\nFollow the on-screen prompts to interact with your Airflow instance.\n\n## Dependencies\n\nThis project relies on several external crates, including:\n\n- `reqwest` for making HTTP requests.\n- `serde` and `serde_json` for JSON serialization and deserialization.\n- `colored` for coloring terminal output.\n- `tokio` for async runtime.\n\nDependencies are managed by Cargo and defined in the `Cargo.toml` file.\n\n## Contributing\n\nContributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\n\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n## Acknowledgements\n\n- [Rust Programming Language](https://www.rust-lang.org/)\n- [Apache Airflow](https://airflow.apache.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fejoliet%2Fairflow-cli-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fejoliet%2Fairflow-cli-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fejoliet%2Fairflow-cli-rust/lists"}