{"id":47962826,"url":"https://github.com/du-cki/comet","last_synced_at":"2026-04-04T10:02:35.486Z","repository":{"id":171900483,"uuid":"627561990","full_name":"du-cki/comet","owner":"du-cki","description":"A blazingly fast CDN node written in rust.","archived":false,"fork":false,"pushed_at":"2024-06-14T22:18:59.000Z","size":1902,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-15T14:46:04.004Z","etag":null,"topics":["cdn","rust","sql"],"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/du-cki.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":"2023-04-13T18:14:08.000Z","updated_at":"2024-02-03T06:16:38.000Z","dependencies_parsed_at":"2023-12-19T15:08:42.950Z","dependency_job_id":"d0018331-6fe0-4602-8a00-63014f4c4567","html_url":"https://github.com/du-cki/comet","commit_stats":null,"previous_names":["du-cki/comet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/du-cki/comet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/du-cki%2Fcomet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/du-cki%2Fcomet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/du-cki%2Fcomet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/du-cki%2Fcomet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/du-cki","download_url":"https://codeload.github.com/du-cki/comet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/du-cki%2Fcomet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31395450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T09:13:02.600Z","status":"ssl_error","status_checked_at":"2026-04-04T09:13:01.683Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["cdn","rust","sql"],"created_at":"2026-04-04T10:02:34.710Z","updated_at":"2026-04-04T10:02:35.473Z","avatar_url":"https://github.com/du-cki.png","language":"Rust","readme":"# # Comet\n\nComet is a **blazingly fast** Content Delivery Network (CDN) node written in Rust.\n\n## Installation\n\nBefore you start, make sure you have Rust installed on your system. If you don't have it installed, you can download it from the official website: \u003chttps://www.rust-lang.org/tools/install\u003e\n\n1. **Clone the repository \u0026 Navigate to it**:\n\n    ```bash\n    git clone https://github.com/du-cki/comet.git\n    cd comet\n    ```\n\n3. **Build the project**:\n\n    ```bash\n    SQLX_OFFLINE=true cargo build --release\n    ```\n\n4. **Edit the `comet-config.toml` file and apply the necessary configurations.**\n\n5. **Run the project**:\n\n    ```bash\n    cargo run --release\n    ```\n    \n    \u003csup\u003ePlease refer to the wiki for other ways to running \u0026 exposing this project.\u003c/sup\u003e\n\n## Usage\n\nOnce you've installed comet, you can start using it as a CDN node. Here's a basic guide on how to use it:\n\n### Uploading a File\n\nTo upload a file, you need to make a POST request to the `/upload` endpoint with the file (as FormData) and the password (set in the `comet-config.toml` file) in the `Authorisation` header.\n\n### Retrieving a File\n\nTo retrieve a file, make a GET request to the `/media/:media_id` endpoint, replacing `:media_id` with the name of the file you want to retrieve.\n\n### Deleting a File\n\nTo delete a file, make a DELETE request to the `/delete/:media_id` endpoint, replacing `:media_id` with the relevant file name and along with the password set in the Authorisation header.\n\n## Configuration\n\nYou can configure Comet by modifying the `comet-config.example.toml` file. Here are the available settings \n(don't forget to rename the file into `comet-config.toml`):\n\n`bind_addr`: The IP address to bind the server to. \u003cbr /\u003e\n`bind_port`: The port to bind the server to. \u003cbr /\u003e\n`password`: The password required to access authenticated routes (i.e. upload route). \u003cbr /\u003e\n`file_name_length`: The length of the randomly generated file names. \u003cbr /\u003e\n`file_save_path`: The path on disk where uploaded files will be saved onto. \u003cbr /\u003e\n`file_size_limit`: The file upload limit, if you pass in `0`, this will be disabled. \u003cbr /\u003e \n`enforce_file_extensions`: Whether to enforce file extensions when requesting for the file. \u003cbr /\u003e\n`fallback_content_type`: The content type to use when the uploaded file's content type cannot be determined. \u003cbr /\u003e\n`endpoints.get_file`: The endpoint for retrieving files. \u003cbr /\u003e\n`endpoints.upload_file`: The endpoint for uploading files. \u003cbr /\u003e\n`endpoints.delete_file`: The endpoint for deleting files. \u003cbr /\u003e\n\n\u003csup\u003ePlease note that you should restart the server for the changes to take effect. \u003c/sup\u003e\n\n## Contributing\n\nIf you are interested in contributing to the development of Comet, here's how to setup an development enviroment:\n\n### Dev Environment Setup\n\nMake sure you have Rust installed on your system. If not, you can download it from the official website: \u003chttps://www.rust-lang.org/tools/install\u003e\n\n1. **Clone the Repository \u0026 Navigate to the project**\n\n   Clone the repository to your local machine:\n\n   ```bash\n   git clone https://github.com/du-cki/comet.git\n   cd comet\n   ```\n\n2. **Build the Project**\n\n    As comet uses SQLite as its database as choice, you'll need to set up the database. To do so, you will need to perform\n    an offline compilation. Build the project with the env variable `SQLX_OFFLINE` as `true`:\n\n    ```bash\n    SQLX_OFFLINE=true cargo build\n    ```\n\n3. **Environment Variables**\n\n    After building the project initially, you can create an `.env` file in the root of the project and set `DATABASE_URL` as `sqlite://data.db` for compile-time checks.\n\nIf you make changes to any SQL queries, you'll need to regenerate the sqlx-data.json file for a successful offline compilation. You can regenerate it with the [SQLx CLI](https://github.com/launchbadge/sqlx/tree/main/sqlx-cli) through `cargo sqlx prepare`.\n\nOnce you've made your changes, please provide a clear and detailed explanation of your changes and open a pull request.\n\n### ### License\n\ncomet is licensed under the MIT license.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdu-cki%2Fcomet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdu-cki%2Fcomet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdu-cki%2Fcomet/lists"}