{"id":17796622,"url":"https://github.com/ire4ever1190/mike","last_synced_at":"2026-03-04T07:04:45.464Z","repository":{"id":37826359,"uuid":"359037972","full_name":"ire4ever1190/mike","owner":"ire4ever1190","description":"The new and improved mikero web framework","archived":false,"fork":false,"pushed_at":"2025-12-31T04:31:47.000Z","size":259,"stargazers_count":42,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-01T07:38:09.303Z","etag":null,"topics":["hacktoberfest","nim","web-framework"],"latest_commit_sha":null,"homepage":"","language":"Nim","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/ire4ever1190.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","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":"2021-04-18T03:52:20.000Z","updated_at":"2025-12-31T04:31:50.000Z","dependencies_parsed_at":"2024-05-12T02:26:43.909Z","dependency_job_id":"637fc523-91a8-4c03-ae44-a1e0a1a15e5d","html_url":"https://github.com/ire4ever1190/mike","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/ire4ever1190/mike","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ire4ever1190%2Fmike","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ire4ever1190%2Fmike/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ire4ever1190%2Fmike/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ire4ever1190%2Fmike/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ire4ever1190","download_url":"https://codeload.github.com/ire4ever1190/mike/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ire4ever1190%2Fmike/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30075425,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T05:31:57.858Z","status":"ssl_error","status_checked_at":"2026-03-04T05:31:38.462Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["hacktoberfest","nim","web-framework"],"created_at":"2024-10-27T11:47:10.425Z","updated_at":"2026-03-04T07:04:45.460Z","avatar_url":"https://github.com/ire4ever1190.png","language":"Nim","readme":"\n[![Tests](https://github.com/ire4ever1190/mike/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/ire4ever1190/mike/actions/workflows/main.yml)\n\n[Docs](https://ire4ever1190.github.io/mike/stable/mike.html)\n\nSimple framework that I use for all my personal projects. Mostly used for writing small API's and website\n\n### Quick overview\n\nJust create an app then add your routes\n\n```nim\nvar app = initApp()\n\n# Fully typed handlers\napp.get(\"/home\") do () -\u003e string:\n  \"hello\"\n    \n\"/mike\" -\u003e post:\n  ctx.send(\"Teapot\", Http427)\n```\n\nYou can specify before/after handlers by prefixing the verb\n\n```nim\n# You get information via typing your proc\napp.beforeGet(\"/^path\") do (path: string):\n  # Log all requests that happen\n  echo path\n```\n\nHas seen in the examples the `ctx` variable is used which is an implicit variable that allows you to\naccess everything about the request and specify what the response will be.\n\n### Context hooks\n\nA nice feature of Mike that sets it apart from other Nim frameworks is support for context hooks\nthat allow you to add parameters to your routes that get information for you and handle if its missing\n\n```nim\n\"/some/route\" -\u003e post(x: Header[string], data: Json[SomeObject], page: Query[int]) -\u003e\n    # Do stuff with parameters here\n```\n\nYou can make your own context hooks to do anything from load some json to getting a database connection from a pool\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fire4ever1190%2Fmike","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fire4ever1190%2Fmike","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fire4ever1190%2Fmike/lists"}