{"id":16157696,"url":"https://github.com/theawiteb/oxide_todo","last_synced_at":"2025-03-18T20:30:52.509Z","repository":{"id":110116047,"uuid":"567277476","full_name":"TheAwiteb/oxide_todo","owner":"TheAwiteb","description":"RESTful Todo API with Actix-web and SeaORM. Documented by swagger-ui","archived":false,"fork":false,"pushed_at":"2023-03-01T12:21:33.000Z","size":360,"stargazers_count":23,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T23:42:05.952Z","etag":null,"topics":["actix-web","openapi","rust","sea-orm","swagger-ui"],"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/TheAwiteb.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":"2022-11-17T13:03:25.000Z","updated_at":"2025-02-25T14:22:01.000Z","dependencies_parsed_at":"2023-06-07T01:15:48.482Z","dependency_job_id":null,"html_url":"https://github.com/TheAwiteb/oxide_todo","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAwiteb%2Foxide_todo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAwiteb%2Foxide_todo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAwiteb%2Foxide_todo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAwiteb%2Foxide_todo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheAwiteb","download_url":"https://codeload.github.com/TheAwiteb/oxide_todo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244301289,"owners_count":20430917,"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":["actix-web","openapi","rust","sea-orm","swagger-ui"],"created_at":"2024-10-10T01:50:20.951Z","updated_at":"2025-03-18T20:30:52.504Z","avatar_url":"https://github.com/TheAwiteb.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Oxide Todo\n\nOxide Todo is RESTful API built with [Actix](https://actix.rs) and [SeaORM](https://www.sea-ql.org/). Documented by [swagger-ui](https://swagger.io/). Authenticated by [JWT](https://jwt.io/). Rate limited by [actix_extensible_rate_limit](https://crates.io/crates/actix_extensible_rate_limit). Tested by [rstest](https://crates.io/crates/rstest). Have fun! 😁\n\n[![CI](https://github.com/TheAwiteb/oxide_todo/actions/workflows/CI.yaml/badge.svg)](https://github.com/TheAwiteb/oxide_todo/actions/workflows/CI.yaml)\n\n\u003c/div\u003e\n\n### Prerequisites\n- [Rust](https://www.rust-lang.org/tools/install) (Minimum Supported Rust Version: 1.65.0)\n\n### Usage\nClone the repository and run the following commands:\n```bash\ncargo run\n```\nJust like that, you have a RESTful API running on your machine.\nIf you want to see the logs, you can run the following command:\n```bash\nRUST_LOG=debug cargo run\n```\n\n### Documentation\n- The API documentation is available at `{HOST}:{PORT}/docs/swagger/` (default: \u003chttp://localhost:8080/docs/swagger/\u003e)\n- The OpenAPI specification is available at `{HOST}:{PORT}/docs/openapi.json` (default: \u003chttp://localhost:8080/docs/openapi.json\u003e) \n\n### Environment variables\nRename the `.env.example` file to `.env` and change the values to your needs. Empty default means that the variable is required.\n\u003c!-- Table of enviroment variables --\u003e\n| Name | Description | Default |\n| --- | --- | --- |\n| `DATABASE_URL` | The database url | `sqlite://db.sqlite3` |\n| `SECRET_KEY` | The secret key for JWT | ` ` |\n| `HOST` | The host to bind | `localhost` |\n| `PORT` | The port to run the server | `8080` |\n| `RATE_LIMIT_BURST_SIZE` | The burst size for rate limiter | `30` |\n| `RATE_LIMIT_PER_SECOND` | The time to reset the burst | `60` |\n| `API_CONTACT_NAME` | The name of the API contact | ` ` |\n| `API_CONTACT_URL` | The url of the API contact | ` ` |\n| `API_CONTACT_EMAIL` | The email of the API contact | ` ` |\n| `API_TITLE` | The title of the API | `RESTful Todo API documentation` |\n\n### Testing\n#### Prerequisites\n- [dotenv-cli](https://pypi.org/project/dotenv-cli/)\n- [just](https://github.com/casey/just)\n```bash\njust tests\n```\n### Development\nFor development you need to install [just](https://github.com/casey/just) and [dotenv-cli](https://pypi.org/project/dotenv-cli/).\nWith `just` you can run all needed commands with one command, type `just` folloing by the command you want to run.\u003cbr\u003e\nAvailable commands:\n- `just build` to build the RESTful API\n- `just ci` to run the CI\n- `just fmt` to format everything\n- `just fmt-check` to check the format of everything\n- `just linter` to run Rust linter (clippy)\n- `just tests` to run the tests\n\n## Soon\n- [X] Swagger UI for API documentation\n- [X] Rate limiting\n- [X] CI with Github Actions\n- [X] Unit tests\n- [ ] Dockerize the server\n- [X] JustFile for easy setup, useing [just](https://github.com/casey/just)\n\n## License\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheawiteb%2Foxide_todo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheawiteb%2Foxide_todo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheawiteb%2Foxide_todo/lists"}