{"id":18994625,"url":"https://github.com/timelessnesses/redirect","last_synced_at":"2026-04-16T10:05:01.892Z","repository":{"id":175977844,"uuid":"652582632","full_name":"timelessnesses/redirect","owner":"timelessnesses","description":"timelessnesses.api.redirect is a redirector for your needs","archived":false,"fork":false,"pushed_at":"2025-12-04T23:10:17.000Z","size":99,"stargazers_count":0,"open_issues_count":25,"forks_count":0,"subscribers_count":1,"default_branch":"rust","last_synced_at":"2025-12-08T07:16:35.203Z","etag":null,"topics":["api","docker","fastapi","postgresql","python","redirect","uvicorn"],"latest_commit_sha":null,"homepage":"https://redirect.api.timelessnesses.me","language":"Python","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/timelessnesses.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-06-12T11:18:21.000Z","updated_at":"2024-01-17T14:41:24.000Z","dependencies_parsed_at":"2024-02-05T07:45:29.085Z","dependency_job_id":"cda6e956-43ba-4ad8-a2c0-b1782343c3ea","html_url":"https://github.com/timelessnesses/redirect","commit_stats":null,"previous_names":["timelessnesses/redirect"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/timelessnesses/redirect","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelessnesses%2Fredirect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelessnesses%2Fredirect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelessnesses%2Fredirect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelessnesses%2Fredirect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timelessnesses","download_url":"https://codeload.github.com/timelessnesses/redirect/tar.gz/refs/heads/rust","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelessnesses%2Fredirect/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31880900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T09:23:21.276Z","status":"ssl_error","status_checked_at":"2026-04-16T09:23:15.028Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["api","docker","fastapi","postgresql","python","redirect","uvicorn"],"created_at":"2024-11-08T17:26:23.388Z","updated_at":"2026-04-16T10:05:01.885Z","avatar_url":"https://github.com/timelessnesses.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# timelessnesses.api.redirect\n\nA rust version of the python version. Using actix-web and tokio\n\n## How to use\n\n1. Build it or grab it from release.\n2. Create .env with text below.\n```properties\nDB_TYPE=either POSTGRES or SQLITE3\nSQLITE_PATH=SQLITE3 database file location\nDB_HOST=POSTGRES database host\nDB_PORT=POSTGRES database port\nDB_USER=POSTGRES database username\nDB_PASSWORD=POSTGRES database user password\nDB_NAME=POSTGRES database name\n```\n3. Run the program\n\n## Benchmark\n\n### PostgreSQL\n\nRead:\n```sh\n timelessnesses@timelessnesses\u003e oha -z 10s --rand-regex-url \"http://localhost:8000/[a-z][a-z][a-z]\"\nSummary:\n  Success rate: 100.00%\n  Total:        10.0011 secs\n  Slowest:      0.7697 secs\n  Fastest:      0.0025 secs\n  Average:      0.0365 secs\n  Requests/sec: 1366.8512\n\n  Total data:   600.73 KiB\n  Size/request: 45 B\n  Size/sec:     60.07 KiB\n\nResponse time histogram:\n  0.002 [1]     |\n  0.079 [12880] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n  0.156 [656]   |■\n  0.233 [33]    |\n  0.309 [0]     |\n  0.386 [0]     |\n  0.463 [50]    |\n  0.540 [0]     |\n  0.616 [0]     |\n  0.693 [0]     |\n  0.770 [50]    |\n\nResponse time distribution:\n  10% in 0.0145 secs\n  25% in 0.0193 secs\n  50% in 0.0271 secs\n  75% in 0.0379 secs\n  90% in 0.0566 secs\n  95% in 0.0838 secs\n  99% in 0.1540 secs\n\nDetails (average, fastest, slowest):\n  DNS+dialup:   0.0051 secs, 0.0003 secs, 0.0072 secs\n  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0001 secs\n\nStatus code distribution:\n  [400] 13670 responses\n```\n\nWrite: \n```sh\n timelessnesses@timelessnesses\u003e oha -z 10s --rand-regex-url \"http://localhost:8000/add\\?url=[a-z][a-z][a-z]\"\nSummary:\n  Success rate: 100.00%\n  Total:        10.0051 secs\n  Slowest:      0.2297 secs\n  Fastest:      0.0269 secs\n  Average:      0.1279 secs\n  Requests/sec: 386.8012\n\n  Total data:   179.08 KiB\n  Size/request: 47 B\n  Size/sec:     17.90 KiB\n\nResponse time histogram:\n  0.027 [1]    |\n  0.047 [8]    |\n  0.067 [151]  |■■■\n  0.088 [947]  |■■■■■■■■■■■■■■■■■■■■■■■■\n  0.108 [137]  |■■■\n  0.128 [93]   |■■\n  0.149 [1027] |■■■■■■■■■■■■■■■■■■■■■■■■■■■\n  0.169 [1214] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n  0.189 [215]  |■■■■■\n  0.209 [61]   |■\n  0.230 [16]   |\n\nResponse time distribution:\n  10% in 0.0727 secs\n  25% in 0.0832 secs\n  50% in 0.1416 secs\n  75% in 0.1568 secs\n  90% in 0.1658 secs\n  95% in 0.1739 secs\n  99% in 0.1972 secs\n\nDetails (average, fastest, slowest):\n  DNS+dialup:   0.0024 secs, 0.0003 secs, 0.0036 secs\n  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0003 secs\n\nStatus code distribution:\n  [200] 3870 responses\n```\n\n## SQLite3\n\nRead: \n```sh\n timelessnesses@timelessnesses\u003e oha -z 10s --rand-regex-url \"http://localhost:8000/[a-z][a-z][a-z]\"\nSummary:\n  Success rate: 100.00%\n  Total:        10.0017 secs\n  Slowest:      0.2856 secs\n  Fastest:      0.0007 secs\n  Average:      0.0191 secs\n  Requests/sec: 2602.8498\n\n  Total data:   1.17 MiB\n  Size/request: 46 B\n  Size/sec:     119.47 KiB\n\nResponse time histogram:\n  0.001 [1]     |\n  0.029 [22812] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n  0.058 [2128]  |■■\n  0.086 [577]   |\n  0.115 [240]   |\n  0.143 [182]   |\n  0.172 [43]    |\n  0.200 [0]     |\n  0.229 [0]     |\n  0.257 [0]     |\n  0.286 [50]    |\n\nResponse time distribution:\n  10% in 0.0057 secs\n  25% in 0.0094 secs\n  50% in 0.0141 secs\n  75% in 0.0204 secs\n  90% in 0.0329 secs\n  95% in 0.0522 secs\n  99% in 0.1181 secs\n\nDetails (average, fastest, slowest):\n  DNS+dialup:   0.0033 secs, 0.0007 secs, 0.0052 secs\n  DNS-lookup:   0.0001 secs, 0.0000 secs, 0.0023 secs\n\nStatus code distribution:\n  [404] 26032 responses\n  [400] 1 responses\n```\n\nWrite:\n```sh\n timelessnesses@timelessnesses\u003e oha -z 10s --rand-regex-url \"http://localhost:8000/add\\?url=[a-z][a-z][a-z]\"\nSummary:\n  Success rate: 100.00%\n  Total:        10.0009 secs\n  Slowest:      0.4208 secs\n  Fastest:      0.0172 secs\n  Average:      0.2878 secs\n  Requests/sec: 170.9840\n\n  Total data:   96.86 KiB\n  Size/request: 58 B\n  Size/sec:     9.68 KiB\n\nResponse time histogram:\n  0.017 [1]   |\n  0.058 [8]   |\n  0.098 [12]  |\n  0.138 [97]  |■■■■\n  0.179 [164] |■■■■■■■\n  0.219 [96]  |■■■■\n  0.259 [22]  |\n  0.300 [189] |■■■■■■■■\n  0.340 [744] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n  0.380 [318] |■■■■■■■■■■■■■\n  0.421 [59]  |■■\n\nResponse time distribution:\n  10% in 0.1512 secs\n  25% in 0.2799 secs\n  50% in 0.3151 secs\n  75% in 0.3363 secs\n  90% in 0.3580 secs\n  95% in 0.3724 secs\n  99% in 0.4043 secs\n\nDetails (average, fastest, slowest):\n  DNS+dialup:   0.0098 secs, 0.0077 secs, 0.0126 secs\n  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0003 secs\n\nStatus code distribution:\n  [200] 1710 responses\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimelessnesses%2Fredirect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimelessnesses%2Fredirect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimelessnesses%2Fredirect/lists"}