{"id":15031436,"url":"https://github.com/codedead/auth-rs","last_synced_at":"2025-10-04T01:31:06.459Z","repository":{"id":185366442,"uuid":"673143473","full_name":"CodeDead/auth-rs","owner":"CodeDead","description":"Authentication and authorization service, written in Rust","archived":false,"fork":true,"pushed_at":"2023-12-11T23:08:35.000Z","size":399,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"development","last_synced_at":"2024-09-29T20:41:20.505Z","etag":null,"topics":["actix","authentication","authorization","cargo","mongo","mongodb","rust","rustlang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Opserva-io/auth-rs","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodeDead.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}},"created_at":"2023-08-01T01:19:23.000Z","updated_at":"2023-08-04T14:56:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"9063f965-8bc1-47e5-b5d9-ae95475dba73","html_url":"https://github.com/CodeDead/auth-rs","commit_stats":null,"previous_names":["codedead/auth-rs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeDead%2Fauth-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeDead%2Fauth-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeDead%2Fauth-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeDead%2Fauth-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeDead","download_url":"https://codeload.github.com/CodeDead/auth-rs/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235208942,"owners_count":18953003,"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","authentication","authorization","cargo","mongo","mongodb","rust","rustlang"],"created_at":"2024-09-24T20:15:40.450Z","updated_at":"2025-10-04T01:31:01.096Z","avatar_url":"https://github.com/CodeDead.png","language":"Rust","readme":"# auth-rs\n\n![GitHub top language](https://img.shields.io/github/languages/top/Opserva-io/auth-rs)\n![GitHub](https://img.shields.io/github/license/Opserva-io/auth-rs)\n![GitHub release (with filter)](https://img.shields.io/github/v/release/Opserva-io/auth-rs)\n[![Test](https://github.com/Opserva-io/auth-rs/actions/workflows/test.yml/badge.svg)](https://github.com/Opserva-io/auth-rs/actions/workflows/test.yml)\n\n`auth-rs` provides a simple authentication and authorization service for use in other services.\nThe service is written in Rust and uses the [actix-web](https://crates.io/crates/actix-web) framework.\n\nUsers, when authenticated, will be given a JWT token which can be used to access other services.\n\nA [React](https://react.dev/)-based frontend for `auth-rs` is also\navailable [here](https://github.com/Opserva-io/auth-js).\n\n## Table of Contents\n\n- [Features](#features)\n- [Usage](#usage)\n  - [Development](#development)\n  - [Docker](#docker)\n- [Configuration](#configuration)\n- [API](#api)\n- [Building](#building)\n- [Dependencies](#dependencies)\n- [About](#about)\n\n## Features\n\n- Authentication\n- Authorization\n- Audit trail\n- Password hashing\n- JWT generation\n- JWT verification\n- Pagination\n- OpenAPI / Swagger UI\n- CORS support\n- Docker support\n- MongoDB integration\n- MongoDB Atlas integration\n\n## Usage\n\n### Development\n\n1. Clone the repository\n2. Copy `.env.example` to `.env` in the root of the project and fill in / adjust the values\n3. Execute `cargo run` to start the service\n\n### Docker\n\nYou can execute `auth-rs` using Docker:\n\n```bash\ndocker run -d -p 8080:8080 --env-file .env opserva/auth-rs\n```\n\n## Configuration\n\n`auth-rs` can be configured using environment variables to fit your environment and requirements. \n\nFor more information about the environment variables, see the [Configuration documentation](/docs/CONFIGURATION.md).\n\n## API\n\n`auth-rs` exposes a REST API that can be used to interact with the service using Create, Read, Update and Delete (CRUD) requests.\nOther (micro)services can use this API to authenticate and authorize users (and generate and verify JWT tokens).\n\nSee the [full API documentation](/docs/API.md) for more information.\n\n## Building\n\nIn order to build `auth-rs`, you will need to have Rust installed.\nYou can install Rust by following the instructions [here](https://www.rust-lang.org/tools/install).\n\n### cargo\n\nYou can build `auth-rs` using `cargo`:\n\n```shell\ncargo build\n```\n\nYou can build an optimized `release` version of `auth-rs` using `cargo`:\n\n```shell\ncargo build --release\n```\n\n### Docker\n\nYou can build a docker image of `auth-rs` using the provided `Dockerfile`:\n\n```shell\ndocker build -t auth-rs .\n```\n\n## Dependencies\n\nA couple of dependencies are required in order to build `auth-rs`:\n\n* [actix-web](https://crates.io/crates/actix-web)\n* [actix-cors](https://crates.io/crates/actix-cors)\n* [actix-web-grants](https://crates.io/crates/actix-web-grants)\n* [mongodb](https://crates.io/crates/mongodb)\n* [chrono](https://crates.io/crates/chrono)\n* [serde](https://crates.io/crates/serde)\n* [serde_json](https://crates.io/crates/serde_json)\n* [futures](https://crates.io/crates/futures)\n* [dotenvy](https://crates.io/crates/dotenvy)\n* [argon2](https://crates.io/crates/argon2)\n* [regex](https://crates.io/crates/regex)\n* [jsonwebtoken](https://crates.io/crates/jsonwebtoken)\n* [env_logger](https://crates.io/crates/env_logger)\n* [log](https://crates.io/crates/log)\n* [utoipa](https://crates.io/crates/utoipa)\n* [utoipa-swagger-ui](https://crates.io/crates/utoipa-swagger-ui)\n\n## About\n\nThis library is maintained by CodeDead. You can find more about us using the following links:\n\n* [Website](https://codedead.com)\n* [Twitter](https://twitter.com/C0DEDEAD)\n* [Facebook](https://facebook.com/deadlinecodedead)\n\nCopyright © 2023 [CodeDead](https://codedead.com)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodedead%2Fauth-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodedead%2Fauth-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodedead%2Fauth-rs/lists"}