{"id":41469617,"url":"https://github.com/doziestar/source_watch","last_synced_at":"2026-01-23T16:45:40.103Z","repository":{"id":245008141,"uuid":"813185930","full_name":"doziestar/source_watch","owner":"doziestar","description":"SourceWatch is designed for managing and graphically viewing various data sources","archived":false,"fork":false,"pushed_at":"2024-06-24T07:36:43.000Z","size":219,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-06-25T00:40:56.747Z","etag":null,"topics":["database","gui","rust"],"latest_commit_sha":null,"homepage":"https://github.com/doziestar/source_watch","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/doziestar.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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,"publiccode":null,"codemeta":null}},"created_at":"2024-06-10T16:22:22.000Z","updated_at":"2024-06-24T11:35:13.000Z","dependencies_parsed_at":"2024-06-23T00:24:58.735Z","dependency_job_id":null,"html_url":"https://github.com/doziestar/source_watch","commit_stats":null,"previous_names":["doziestar/source_watch"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/doziestar/source_watch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doziestar%2Fsource_watch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doziestar%2Fsource_watch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doziestar%2Fsource_watch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doziestar%2Fsource_watch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doziestar","download_url":"https://codeload.github.com/doziestar/source_watch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doziestar%2Fsource_watch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28695989,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T15:57:05.722Z","status":"ssl_error","status_checked_at":"2026-01-23T15:56:27.656Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["database","gui","rust"],"created_at":"2026-01-23T16:45:34.842Z","updated_at":"2026-01-23T16:45:40.083Z","avatar_url":"https://github.com/doziestar.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SourceWatch\n\nSourceWatch is a powerful and robust Rust application designed for managing and graphically viewing various data sources. It supports SQL databases, MongoDB, Redis, and log data sources, providing a unified interface to query and visualize data.\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Configuration](#configuration)\n- [Development](#development)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Features\n\n- **Multi-Database Support:** Connect to and manage SQL databases (MySQL, PostgreSQL), MongoDB, and Redis.\n- **Log Data Sources:** Integrate and visualize log data sources.\n- **Graphical User Interface:** Intuitive GUI built with `iced` for easy interaction and data visualization.\n- **Asynchronous Operations:** Efficiently handle multiple database connections and operations using `tokio` and `async-std`.\n- **Robust Logging:** Centralized logging for monitoring and debugging.\n- **Extensibility:** Modular architecture for easy extension and maintenance.\n\n## Installation\n\n### Prerequisites\n\n- Rust (latest stable version)\n- Cargo (package manager for Rust)\n\n### Steps\n\n1. **Clone the Repository**\n\n   ```bash\n   git clone https://github.com/doziestar/source_watch.git\n   cd source_watch\n    ```\n2. **Build the Application**\n\n   ```bash\n   cargo build --release\n   ```\n   \n3. **Run the Application**\n\n   ```bash\n    cargo run --release\n    ```\n\n## Usage\n\n1. **Connect to a Database**\n\n   - Click on the `+` button in the sidebar to add a new database connection.\n   - Select the database type (SQL, MongoDB, Redis).\n   - Enter the connection details (host, port, username, password).\n   - Click `Connect` to establish the connection.\n\n2. **Query Data**\n\n   - Select the database connection from the sidebar.\n   - Enter an SQL query or command in the query editor.\n   - Click `Run` to execute the query and view the results.\n   - The results will be displayed in a table format.\n   - Click on the `Chart` button to visualize the data in a graphical format.\n   - Save the query results as a CSV file by clicking on the `Save` button.\n   - Clear the query editor by clicking on the `Clear` button.\n   - Disconnect from the database by clicking on the `Disconnect` button.\n   - Close the database connection by clicking on the `X` button.\n   - Refresh the database connection by clicking on the `Refresh` button.\n   - Edit the database connection details by clicking on the `Edit` button.\n   - Delete the database connection by clicking on the `Delete` button.\n   - Export the database connection details as a JSON file by clicking on the `Export` button.\n   - Import a database connection from a JSON file by clicking on the `Import` button.\n   - Search for a specific table or column by entering the search term in the search bar.\n   - Filter the query results by entering a filter condition in the filter bar.\n   - Sort the query results by clicking on the column headers.\n   - Resize the columns by dragging the column dividers.\n   - Copy the query results to the clipboard by clicking on the `Copy` button.\n   - Export the query results as a CSV file by clicking on the `Export` button.\n   - Export the query results as a JSON file by clicking on the `Export` button.\n\n3. **Visualize Data**\n\n   - Click on the `Chart` button to visualize the query results in a graphical format.\n   - Select the chart type (line, bar, pie, scatter, etc.).\n   - Customize the chart settings (title, labels, colors, etc.).\n   - Save the chart as an image file by clicking on the `Save` button.\n   - Export the chart data as a CSV file by clicking on the `Export` button.\n   - Export the chart data as a JSON file by clicking on the `Export` button.\n\n4. **Manage Log Data**\n\n    - Click on the `Logs` button in the sidebar to view log data sources.\n    - Add a new log data source by clicking on the `+` button.\n    - Select the log file or directory to monitor.\n    - Configure the log data source settings (format, encoding, interval, etc.).\n    - Start monitoring the log data source by clicking on the `Start` button.\n    - Stop monitoring the log data source by clicking on the `Stop` button.\n    - View the log data in real-time as it is generated.\n    - Search for specific log entries by entering the search term in the search bar.\n    - Filter the log entries by entering a filter condition in the filter bar.\n    - Export the log entries as a CSV file by clicking on the `Export` button.\n    - Export the log entries as a JSON file by clicking on the `Export` button.\n\n## Configuration\n\nSourceWatch can be configured using a `config.toml` file located in the project root directory. The configuration file allows you to customize various settings such as the application theme, database connections, log data sources, etc.\n\nHere is an example configuration file:\n\n```toml\n[databases]\n[[databases.mysql]]\nname = \"MySQL Database\"\nhost = \"localhost\"\nport = 330\nusername = \"root\"\npassword = \"password\"\ndatabase = \"test\"\n\n[[databases.postgresql]]\nname = \"PostgreSQL Database\"\nhost = \"localhost\"\nport = 543\nusername = \"postgres\"\npassword = \"password\"\ndatabase = \"test\"\n\n[[databases.mongodb]]\nname = \"MongoDB Database\"\nhost = \"localhost\"\nport = 270\nusername = \"admin\"\npassword = \"password\"\ndatabase = \"test\"\n\n[[databases.redis]]\nname = \"Redis Database\"\nhost = \"localhost\"\nport = 637\npassword = \"password\"\n\n[logs]\n[[logs.file]]\nname = \"Log File\"\npath = \"/var/log/app.log\"\nformat = \"json\"\nencoding = \"utf-8\"\ninterval = 1\n```\n\n## Development\n\nTo contribute to SourceWatch, follow these steps:\n\n1. **Fork the Repository**\n\n   Click on the `Fork` button in the top right corner of the repository page.\n2. **Clone the Repository**\n\n   ```bash\n   git clone https://github.com/doziestar/source_watch.git\n    cd source_watch\n    ```\n   \n3. **Create a New Branch**\n\n   ```bash\n   git checkout -b feature/my-feature\n    ```\n   \n4. **Make Changes**\n\n   Make your desired changes to the codebase.\n5. **Commit Changes**\n\n   ```bash\n    git commit -am \"Add new feature\"\n     ```\n   \n6. **Push Changes**\n7. **Create a Pull Request**\n\n   Click on the `Pull Request` button on the repository page.\n8. **Review Changes**\n\n   Wait for the maintainers to review your changes.\n9. **Merge Pull Request**\n\n   Once approved, your changes will be merged into the main branch.\n10. **Celebrate**\n\n   Congratulations! You have successfully contributed to SourceWatch.\n\n## Contributing\n\nIf you would like to contribute to SourceWatch, please read the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines and best practices.\n\n## License\n\nSourceWatch is licensed under the [MIT License](LICENSE).\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoziestar%2Fsource_watch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoziestar%2Fsource_watch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoziestar%2Fsource_watch/lists"}