{"id":16640017,"url":"https://github.com/hueifeng/tinyurl","last_synced_at":"2025-10-30T09:30:52.844Z","repository":{"id":45971794,"uuid":"325226763","full_name":"hueifeng/TinyURL","owner":"hueifeng","description":"Generic shortcode URL implementation in CSharp.","archived":false,"fork":false,"pushed_at":"2022-07-09T15:01:15.000Z","size":196,"stargazers_count":7,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-02T07:41:18.385Z","etag":null,"topics":["dotnet","shorturl","tinyurl","url"],"latest_commit_sha":null,"homepage":"","language":"C#","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/hueifeng.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}},"created_at":"2020-12-29T08:12:31.000Z","updated_at":"2024-05-02T06:42:36.000Z","dependencies_parsed_at":"2022-07-18T09:08:55.014Z","dependency_job_id":null,"html_url":"https://github.com/hueifeng/TinyURL","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hueifeng%2FTinyURL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hueifeng%2FTinyURL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hueifeng%2FTinyURL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hueifeng%2FTinyURL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hueifeng","download_url":"https://codeload.github.com/hueifeng/TinyURL/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238950485,"owners_count":19557533,"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":["dotnet","shorturl","tinyurl","url"],"created_at":"2024-10-12T07:07:39.865Z","updated_at":"2025-10-30T09:30:52.455Z","avatar_url":"https://github.com/hueifeng.png","language":"C#","readme":"\u003cdiv\u003e \n\u003cp align=\"center\"\u003e\n    \u003cimage src=\"TinyURL.png\"  height=\"250\"\u003e\n \u003c/p\u003e\n \u003cp align=\"center\"\u003eA simple, stable, safe, and fast short-chain generation library.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://www.nuget.org/packages/TinyURL\"\u003e\n      \u003cimage src=\"https://img.shields.io/nuget/v/TinyURL.svg?style=flat-square\" alt=\"nuget\"\u003e\n\u003c/a\u003e\n    \n\u003ca href=\"https://github.com/hueifeng/TinyURL/workflows/.NET%20Core/badge.svg\"\u003e\n      \u003cimage src=\"https://github.com/hueifeng/TinyURL/workflows/.NET%20Core/badge.svg\" alt=\"NETCore\"\u003e\n\u003c/a\u003e\n    \n\u003ca href=\"https://www.nuget.org/stats/packages/TinyURL.Core?groupby=Version\"\u003e\n      \u003cimage src=\"https://img.shields.io/nuget/dt/TinyURL.Core.svg?style=flat-square\" alt=\"stats\"\u003e\n\u003c/a\u003e\n    \n\u003ca href=\"https://raw.githubusercontent.com/hueifeng/TinyURL/master/LICENSE\"\u003e\n    \u003cimage src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"MIT\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\u003c/div\u003e\n\n## Description\n\nLanguage: English | [中文](README.zh-cn.md)\n\nThe shortcode is composed of 62 characters of `[a-z, A-Z, 0-9]`, the length of the shortcode is 6 digits, and the 6-digit shortcode supports 56.8 billion combinations: (26+26+10)^6 =568002355884.\n\n## Features\n\n- Flexible reference library, easy to use\n- Persistent storage of original data\n- Self-increasing ID and MurmurHash algorithm are adopted to ensure the safety and reliability of shortcode without collision\n\n## Quick Start\n\n1、Install Package\n\n```powershell\nInstall-Package TinyURL\n```\n\n2、Install the persistence library\n\n```powershell\nInstall-Package TinyURL.SqlServer\n```\n\n3、Short code\n\n```csharp\nTinyURL shortUrl = new TinyURL(\n      new SqlServerStorageProcessor(\"Server=localhost;Database=TestDb;Trusted_Connection=True;\"));\nawait shortUrl.Generator(url);\n```\n\n## Table Structure\n\n  \u003ctable\u003e \n   \u003cthead\u003e \n    \u003ctr\u003e \n     \u003cth\u003eTable\u003c/th\u003e \n     \u003cth colspan=\"2\"\u003eUrlDictionary\u003c/th\u003e \n    \u003c/tr\u003e \n    \u003ctr\u003e \n     \u003cth\u003eName\u003c/th\u003e \n     \u003cth\u003eType\u003c/th\u003e \n     \u003cth\u003eDetails\u003c/th\u003e \n    \u003c/tr\u003e \n   \u003c/thead\u003e \n   \u003ctbody\u003e \n    \u003ctr\u003e \n     \u003ctd\u003eId\u003c/td\u003e \n     \u003ctd\u003e[int] IDENTITY(1,1) NOT NULL\u003c/td\u003e \n     \u003ctd\u003eidentity ID\u003c/td\u003e \n    \u003c/tr\u003e \n    \u003ctr\u003e \n     \u003ctd\u003eCode\u003c/td\u003e \n     \u003ctd\u003e[nvarchar] (6)\u003c/td\u003e \n     \u003ctd\u003eshort code\u003c/td\u003e \n    \u003c/tr\u003e \n    \u003ctr\u003e \n     \u003ctd\u003eURL\u003c/td\u003e \n     \u003ctd\u003e[nvarchar] (128)\u003c/td\u003e \n     \u003ctd\u003eOriginal link\u003c/td\u003e \n    \u003c/tr\u003e \n    \u003ctr\u003e \n     \u003ctd\u003eHashVal\u003c/td\u003e \n     \u003ctd\u003e[nvarchar] (32)\u003c/td\u003e \n     \u003ctd\u003eHash Value\u003c/td\u003e \n    \u003c/tr\u003e \n    \u003ctr\u003e \n     \u003ctd\u003eInsertAt\u003c/td\u003e \n     \u003ctd\u003e[datetime]\u003c/td\u003e \n     \u003ctd\u003eCreation time\u003c/td\u003e \n    \u003c/tr\u003e \n   \u003c/tbody\u003e \n  \u003c/table\u003e\n\n\n## Contribution\n\nIf you have any ideas you can join in, or find that there is code in this project that needs improvement, welcome to Fork and submit a PR!\n\n## License\n\n[MIT](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhueifeng%2Ftinyurl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhueifeng%2Ftinyurl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhueifeng%2Ftinyurl/lists"}