A secure and efficient gateway for interacting with OpenAI's API, featuring load balancing, user request handling without individual API keys, and global access control.

Overview

OpenAI Hub

Licence Docker

OpenAI Hub is a comprehensive and robust tool designed to streamline and enhance your interaction with OpenAI's API. It features an innovative way to load balance multiple API keys, allowing users to make requests without needing individual OpenAI API keys. Additionally, it employs a global access control list (ACL) that gives you the power to regulate which APIs and models users can utilize. The Hub also includes JWT Authentication for secure and reliable user authentication, and now, an Access Log feature for tracking API usage and token consumption.

Key Features

  • Load Balancing: Utilize multiple API keys efficiently, preventing the overuse of any single key.
  • API Key Protection: Allow users to make requests without the need for an individual OpenAI API key, enhancing security and ease of use.
  • Global ACL: Regulate user access to specific APIs and models, ensuring the right people have access to the right resources.
  • JWT Authentication: Secure and reliable user authentication system using JSON Web Tokens (JWT).
  • Access Log: Keep track of API usage and token consumption with our newly implemented access log feature. You can choose to store logs in file, SQLite, MySQL, or PostgreSQL backends.

Getting Started

You can run OpenAI Hub either by cloning the repository and using Cargo, or by using Docker.

Running with Cargo

git clone https://github.com/lightsing/openai-hub.git
cd openai-hub

# build and run
cargo run run --bin openai-hubd --all-features --release

Running with Docker

# pull the Docker image
docker pull lightsing/openai-hub:latest

# run the Docker container
docker run -p 8080:8080 lightsing/openai-hub

# or with your custom configs
docker run -v /your/path/to/config:/opt/openai-hub/config -p <yourport> lightsing/openai-hub

Please replace username with the appropriate GitHub username.

Upcoming Features (To-Do List)

  • Per User/RBAC ACL: We're developing a more granular access control system to allow permissions to be set on a per-user basis, and Role-Based Access Control (RBAC) to allow users to have roles that define their access levels.

We're always working to improve OpenAI Hub and add new features. Stay tuned for these exciting updates!

Contributing

We encourage you to contribute to OpenAI Hub! Please check out the Contributing to OpenAI Hub guide for guidelines about how to proceed.

License

OpenAI Hub is released under the MIT License.

Contact

If you have any questions, issues, or suggestions for improvement, please feel free to open an issue in this repository or contact us directly.

We're excited to see how you'll use OpenAI Hub!

Comments
  • Bump axum from `eafee2d` to `8374c3e`

    Bump axum from `eafee2d` to `8374c3e`

    Bumps axum from eafee2d to 8374c3e.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump regex from 1.8.3 to 1.8.4

    Bump regex from 1.8.3 to 1.8.4

    Bumps regex from 1.8.3 to 1.8.4.

    Changelog

    Sourced from regex's changelog.

    1.8.4 (2023-06-05)

    This is a patch release that fixes a bug where (?-u:\B) was allowed in Unicode regexes, despite the fact that the current matching engines can report match offsets between the code units of a single UTF-8 encoded codepoint. That in turn means that match offsets that split a codepoint could be reported, which in turn results in panicking when one uses them to slice a &str.

    This bug occurred in the transition to regex 1.8 because the underlying syntactical error that prevented this regex from compiling was intentionally removed. That's because (?-u:\B) will be permitted in Unicode regexes in regex 1.9, but the matching engines will guarantee to never report match offsets that split a codepoint. When the underlying syntactical error was removed, no code was added to ensure that (?-u:\B) didn't compile in the regex 1.8 transition release. This release, regex 1.8.4, adds that code such that Regex::new(r"(?-u:\B)") returns to the regex <1.8 behavior of not compiling. (A bytes::Regex can still of course compile it.)

    Bug fixes:

    • [BUG #1006](rust-lang/regex#1006): Fix a bug where (?-u:\B) was allowed in Unicode regexes, and in turn could lead to match offsets that split a codepoint in &str.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump clap from 4.3.1 to 4.3.3

    Bump clap from 4.3.1 to 4.3.3

    Bumps clap from 4.3.1 to 4.3.3.

    Release notes

    Sourced from clap's releases.

    v4.3.3

    [4.3.3] - 2023-06-09

    Features

    • Command::defer for delayed initialization of subcommands to reduce startup times of large applications like deno

    v4.3.2

    [4.3.2] - 2023-06-05

    Fixes

    • (derive) Don't produce unused_equalifications warnings when someone brings a clap type into scope
    Changelog

    Sourced from clap's changelog.

    [4.3.3] - 2023-06-09

    Features

    • Command::defer for delayed initialization of subcommands to reduce startup times of large applications like deno

    [4.3.2] - 2023-06-05

    Fixes

    • (derive) Don't produce unused_equalifications warnings when someone brings a clap type into scope
    Commits
    • a87fba2 chore: Release
    • 4b9ec6f docs: Update changelog
    • 13534b6 Merge pull request #4792 from epage/defer
    • d10938d feat: Allow deferred initialization of subcommands
    • 475e254 chore: Release
    • 75e2060 docs: Update changelog
    • 468ab55 Merge pull request #4952 from epage/derive
    • 103ae5c fix(derive): Don't warn when people bring types into scope
    • 5661b6b style: Remove unused mut
    • e7729d1 fix(derive): Mark all impls as automatically derived
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump serde from 1.0.163 to 1.0.164

    Bump serde from 1.0.163 to 1.0.164

    Bumps serde from 1.0.163 to 1.0.164.

    Release notes

    Sourced from serde's releases.

    v1.0.164

    • Allowed enum variants to be individually marked as untagged (#2403, thanks @​dewert99)
    Commits
    • 107018c Release 1.0.164
    • a398237 Point out serde(untagged) variants which are out of order
    • b63c65d Merge pull request #2470 from dtolnay/contentref
    • f60324e Reuse a single ContentRefDeserializer throughout untagged enum deserialization
    • 361c23a Simplify enumerate().find(...) -> Iterator::position
    • 43b23c7 Format PR 2403 with rustfmt
    • 6081497 Resolve semicolon_if_nothing_returned pedantic clippy lint
    • 48e5753 Allowed Enum variants to be individually marked as untagged (#2403)
    • bbba632 Revert "Ui tests with compile_error resolved at call site"
    • e77db40 Ui tests with compile_error resolved at call site
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump clap from 4.3.0 to 4.3.1

    Bump clap from 4.3.0 to 4.3.1

    Bumps clap from 4.3.0 to 4.3.1.

    Changelog

    Sourced from clap's changelog.

    [4.3.1] - 2023-06-02

    Performance

    • (derive) Reduce the amount of generated code
    Commits
    • 50f0e6b chore: Release
    • 1471457 docs: Update changelog
    • 7ead9ab Merge pull request #4947 from klensy/formatless-error
    • df5d901 perf(derive): Reduce amount of generated code
    • e8a3568 Merge pull request #4944 from clap-rs/renovate/criterion-0.x
    • a4f8391 Merge pull request #4943 from clap-rs/renovate/compatible-(dev)
    • 4eb03ea chore(deps): update rust crate criterion to 0.5.1
    • 534be34 chore(deps): update compatible (dev)
    • 78bb48b chore: Release
    • 3430d62 Merge pull request #4935 from epage/nu
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump once_cell from 1.17.2 to 1.18.0

    Bump once_cell from 1.17.2 to 1.18.0

    Bumps once_cell from 1.17.2 to 1.18.0.

    Changelog

    Sourced from once_cell's changelog.

    1.18.0

    • MSRV is updated to 1.60.0 to take advantage of dep: syntax for cargo features, removing "implementation details" from publicly visible surface.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump chrono from 0.4.25 to 0.4.26

    Bump chrono from 0.4.25 to 0.4.26

    Bumps chrono from 0.4.25 to 0.4.26.

    Release notes

    Sourced from chrono's releases.

    0.4.26

    The changes from #807 we merged for 0.4.25 unfortunately restricted parsing in a way that was incompatible with earlier 0.4.x releases. We reverted this in #1113. A small amount of other changes were merged since.

    Thanks on behalf of the chrono team (@​djc and @​esheppa) to all contributors!

    Commits
    • 5b8449e Bump version to 0.4.26
    • 7e6646d Update README
    • 8bd13db Use result in doctest
    • becc222 Revert backport of #807
    • 373c6e4 Update to 2021 edition
    • e41451d try_verify_against_date_command NFC print progress messages
    • b1729f3 try_verify_against_date sanity check date command
    • 05c9408 consolidate path to date
    • b5b936a Error on negative durations in DurationRound
    • c0d848d parse tests around nanosecond parsing bare '.'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump once_cell from 1.17.1 to 1.17.2

    Bump once_cell from 1.17.1 to 1.17.2

    Bumps once_cell from 1.17.1 to 1.17.2.

    Changelog

    Sourced from once_cell's changelog.

    1.17.2

    • Avoid unnecessary synchronization in Lazy::{force,deref}_mut(), #231.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump chrono from 0.4.24 to 0.4.25

    Bump chrono from 0.4.24 to 0.4.25

    Bumps chrono from 0.4.24 to 0.4.25.

    Release notes

    Sourced from chrono's releases.

    0.4.25

    Time for another maintenance release. This release bumps the MSRV to 1.56; given MSRV bumps in chrono's dependencies (notably for syn 2), we felt that it no longer made sense to support any older versions. Feedback welcome in our issue tracker!

    Additions

    Fixes

    Refactoring

    Documentation

    Internal improvements

    ... (truncated)

    Commits
    • 82221c0 Bump version to 0.4.25
    • c0a99b7 Use bash instead of sh
    • 42fca00 test.yml run statement should fail early
    • c01e3a7 test: explicitly set LANG in gnu date
    • 656c941 Switch test to TryFrom
    • a8f177e Move wasmbind methods into inner module
    • 51cce84 Move stub into local/mod.rs
    • 2b7a068 Only implement the offset_from_ methods on Local
    • 7fb3e59 Just rely on the standard library for Local::now
    • bdf8b19 Deny warnings in doctests
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump tokio from 1.28.1 to 1.28.2

    Bump tokio from 1.28.1 to 1.28.2

    Bumps tokio from 1.28.1 to 1.28.2.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.28.2

    1.28.2 (May 28, 2023)

    Forward ports 1.18.6 changes.

    Fixed

    • deps: disable default features for mio (#5728)

    #5728: tokio-rs/tokio#5728

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Owner
Akase Cho
Rust Developer
Akase Cho
A blazingly fast HTTP client with a magnificent request building syntax, made for humans.

?? glue Make requests, select JSON responses, nest them in other requests: A magnificent syntax for blazingly fast cli HTTP calls, made for humans. Ta

Michele Esposito 4 Dec 7, 2022
Rust I18n is use Rust codegen for load YAML file storage translations on compile time, and give you a t! macro for simply get translation texts.

Rust I18n Rust I18n is use Rust codegen for load YAML file storage translations on compile time, and give you a t! macro for simply get translation te

Longbridge 73 Dec 27, 2022
Structured Exception Handling (SEH) for Rust

MicroSEH ❌ MicroSEH is a small library for Structured Exception Handling (SEH) in Rust that can catch and handle hardware exceptions. Isn't Rust suppo

null 4 Oct 26, 2022
Type safe multipart/form-data handling for axum.

axum_typed_multipart Designed to seamlessly integrate with Axum, this crate simplifies the process of handling multipart/form-data requests in your we

Lorenzo Murarotto 10 Mar 28, 2023
Rust Rest API Stack with User Management

A secure-by-default rest api stack implemented with hyper, tokio, bb8 and postgres. This project is focused on providing end-to-end encryption by default for 12-factor applications. Includes a working user management and authentication backend written in postgresql with async S3 uploading for POST-ed data files.

Jay 10 Dec 25, 2022
Hot reload static web server for deploying mutiple static web site with version control.

SPA-SERVER It is to provide a static web http server with cache and hot reload. 中文 README Feature Built with Hyper and Warp, fast and small! SSL with

null 7 Dec 18, 2022
Murasaki is a Fast, Secure, and Reliable Webkit based web browser.

Murasaki is a Fast, Secure, and Reliable Webkit based web browser. Table of Contents Goals Status Usage License Goals Security: Be secure, and not com

Moon Laboratories 5 Nov 17, 2021
Magnesium-Oxide (MGO) a secure file uploader with support for ShareX.

A blazingly fast, ShareX uploader coded in Rust (using actix web) which utilizes AES-256-GCM-SIV to securely store uploaded content.

Magnesium 26 Nov 25, 2022
A Google-like web search engine that provides the user with the most relevant websites in accordance to his/her query, using crawled and indexed textual data and PageRank.

Mini Google Course project for the Architecture of Computer Systems course. Overview: Architecture: We are working on multiple components of the web c

Max 11 Aug 10, 2022
Simple example of axum, sqlx with sqlite and utoipa (swagger) - without auth

axum_crud_api Simple example to learn creating CRUD rest apis in Rust with axum, sqlx with sqlite and utoipa (swagger) - without auth Also shows how t

null 2 Nov 12, 2022
A static website that allows a user to tap along with a beat, displaying the song's calculated tempo in beats per minute (BPM).

BPM Is A static website that allows a user to tap along with a beat, displaying the song's calculated tempo in beats per minute (BPM). Hosted at https

Blake Johnson 11 Nov 5, 2021
🪪 Session-based user authentication for Axum.

axum-login ?? Session-based user authentication for Axum. ?? Overview axum-login is a Tower middleware providing session-based user authentication for

Max Countryman 99 Jan 5, 2023
REST API server that abstracts the need to write CRUD methods by exposing a standardized API to interact with a Postgres database

Basiliq Exposing a Postgres database via a REST API that follows the JSON:API specs. All in all, a tasty API. What is Basiliq Quickstart Ready to use

Basiliq 54 Apr 21, 2022
A Rust Boilerplate server with GraphQL API, Diesel, PostgreSQL, session authentication and JWT

Canduma rust Graphql A Rust authentication server with GraphQL API, Diesel, PostgreSQL session authentication and JWT This repository contains a Graph

Julien Lenne 738 Dec 28, 2022
Implementation of the RealWorld backend API spec in Actix, Rust's powerful actor system and most fun web framework.

Actix codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API. ❗ (2021/05/13) This cod

Allen 475 Jan 2, 2023
A customizable, simple and easy to use json REST API consumer

JACK is a generic JSON API client. It is useful to interact with APIs from multiple services such as Google and Twitter

Mente Binária 6 May 22, 2022
Print Apple WeatherKit REST API weather conditions and hourly/daily foreacast to the console.

weatherkit-rust A Rust CLI program to print current conditions and daily/hourly forecast to the console. Please read authorization.md as you need an A

boB Rudis 11 Dec 23, 2022
RESTful Todo API with Actix-web and SeaORM. Documented by swagger-ui

RESTful Todo RESTful Todo API with Actix and SeaORM. Documented by swagger-ui Prerequisites Rust Usage Clone the repository and run the following comm

Awiteb 4 Dec 27, 2022
An API to track various stats written in Rust. Tracking Github, Wakatime, Spotify, and Duolingo

Null API API For collecting data Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About The Project Built With Getting St

The Null Dev 2 Dec 15, 2022