{"id":16216784,"url":"https://github.com/utybo/servine","last_synced_at":"2026-01-20T18:56:31.429Z","repository":{"id":42962301,"uuid":"393739983","full_name":"utybo/Servine","owner":"utybo","description":"HTTP server and Kotlin libraries with _redirects compatibility","archived":false,"fork":false,"pushed_at":"2022-03-27T21:12:46.000Z","size":198,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-13T21:23:03.307Z","etag":null,"topics":["kotlin","ktor","ktor-server","redirects"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/utybo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-08-07T16:50:05.000Z","updated_at":"2022-06-03T12:06:48.000Z","dependencies_parsed_at":"2022-09-10T09:22:09.003Z","dependency_job_id":null,"html_url":"https://github.com/utybo/Servine","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utybo%2FServine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utybo%2FServine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utybo%2FServine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utybo%2FServine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/utybo","download_url":"https://codeload.github.com/utybo/Servine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721951,"owners_count":20985083,"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":["kotlin","ktor","ktor-server","redirects"],"created_at":"2024-10-10T11:22:18.846Z","updated_at":"2026-01-20T18:56:31.404Z","avatar_url":"https://github.com/utybo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [![Servine](https://img.pokemondb.net/sprites/black-white-2/anim/normal/servine.gif)](http://pokemondb.net/pokedex/servine) Servine\n\nExperimental toolkit for working with `_redirects` file.\n\n* `redirects-parser` Simple parser for `_redirects` files\n* `redirects-ktor` Redirection plugin with support for `_redirects` files for [Ktor](https://ktor.io)\n* `servine` Local HTTP server with support for `_redirects` files\n\n**CAUTION:** All libraries are published on [GitLab](https://gitlab.com/utybo/packages/-/packages?search[]=guru%2Fzoroark%2Fservine), despite a \"Packages\" section being present on this repository.\n\n\u003e ⚡ This app and its libraries are under heavy development and are not stable yet. Moreover, they should only be used for development purposes only - very little sanity checks are performed.\n\n## Features\n\nThe redirection implementation is largely based\non [Netlify's redirection system](https://docs.netlify.com/routing/redirects/). Please file an issue if you notice any\ndifference between Netlify's behavior and any of the libraries here.\n\nRefer to the following for compatibility information\n\n| Feature | `redirects-parser` | `redirects-ktor` | `servine` |\n|:-------:|:------------------:|:----------------:|:---------:|\n| [`_redirects` files](https://docs.netlify.com/routing/redirects/#syntax-for-the-redirects-file) | 🟡 (1) | 🟡 (1) | 🟡 (1) |\n| Redirections | ✅ | ✅ | ✅ |\n| [Rewrites](https://docs.netlify.com/routing/redirects/rewrites-proxies/) | ✅ | ✅ | ✅ |\n| [Shadowing](https://docs.netlify.com/routing/redirects/rewrites-proxies/#shadowing) | ❌ | ❌ | ❌ |\n| [HTTP Status codes](https://docs.netlify.com/routing/redirects/redirect-options/#http-status-codes) | ✅ | 🟡 (2) | 🟡 (2) |\n| [Splats](https://docs.netlify.com/routing/redirects/redirect-options/#splats) | 🟡 (4) | 🟡 (3) | 🟡 (3) |\n| [Placeholders](https://docs.netlify.com/routing/redirects/redirect-options/#placeholders) | 🟡 (4) | ❌ | ❌ |\n| [Query parameters](https://docs.netlify.com/routing/redirects/redirect-options/#query-parameters) | ❌ | ❌ | ❌ |\n| [Trailing slash handling](https://docs.netlify.com/routing/redirects/redirect-options/#trailing-slash) | 🤷‍♂️ | ❌ | ❌ |\n| [Domain-level redirects](https://docs.netlify.com/routing/redirects/redirect-options/#domain-level-redirects) | ❌ | ❌ | ❌ |\n| [Redirect by country/language](https://docs.netlify.com/routing/redirects/redirect-options/#redirect-by-country-or-language) | ❌ | ❌ | ❌ |\n| [Redirect by cookie](https://docs.netlify.com/routing/redirects/redirect-options/#redirect-by-cookie-presence) | ❌ | ❌ | ❌ |\n\n✅ Fully supported | 🔧 Can be optionally enabled | 🟡 Partially supported | ❌ Not supported | 🤷‍♂️ Not applicable\n\n1. These files can be parsed, but not all features are supported -- refer to the table to know which ones are.\n2. Only status codes 302, 301, 404 and 200 are supported.\n3. The post-url `*` is supported, but the `:splat` placeholder is not, nor is `*` anywhere except at the end of the URL.\n4. Parsed as a regular string -- not exposed in any particular way. This is not actively tested and will be at a later date.\n\n## `redirects-parser`\n\n[See the module's README file for more information.](redirects-parser/README.md)\n\n## `redirects-ktor`\n\n[See the module's README file for more information.](redirects-ktor/README.md)\n\n## `servine`\n\n[See the module's README file for more information.](servine/README.md)\n\n## `servine-livereload`\n\n[See the module's README file for more information.](servine-livereload/README.md)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futybo%2Fservine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Futybo%2Fservine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futybo%2Fservine/lists"}