{"id":9243524,"url":"https://github.com/sigma-andex/purescript-httpurple","last_synced_at":"2026-02-14T20:35:09.132Z","repository":{"id":37793133,"uuid":"425924629","full_name":"sigma-andex/purescript-httpurple","owner":"sigma-andex","description":"🪁 A simple, type-safe http server for PureScript","archived":false,"fork":false,"pushed_at":"2024-09-18T14:59:09.000Z","size":568,"stargazers_count":56,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-02T06:43:38.645Z","etag":null,"topics":["http","http-server","node-http","node-http-server","purescript"],"latest_commit_sha":null,"homepage":"","language":"PureScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"citizennet/purescript-httpure","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sigma-andex.png","metadata":{"files":{"readme":"Readme.md","changelog":"CHANGELOG.md","contributing":"Contributing.md","funding":null,"license":"LICENSES/httpure.LICENSE","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}},"created_at":"2021-11-08T17:06:12.000Z","updated_at":"2025-03-06T06:37:25.000Z","dependencies_parsed_at":"2024-09-14T02:16:41.977Z","dependency_job_id":"624cf927-64d4-4a9d-8276-0e51efce21b1","html_url":"https://github.com/sigma-andex/purescript-httpurple","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/sigma-andex/purescript-httpurple","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sigma-andex%2Fpurescript-httpurple","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sigma-andex%2Fpurescript-httpurple/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sigma-andex%2Fpurescript-httpurple/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sigma-andex%2Fpurescript-httpurple/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sigma-andex","download_url":"https://codeload.github.com/sigma-andex/purescript-httpurple/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sigma-andex%2Fpurescript-httpurple/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29455358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"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":["http","http-server","node-http","node-http-server","purescript"],"created_at":"2024-05-08T00:09:49.279Z","updated_at":"2026-02-14T20:35:09.117Z","avatar_url":"https://github.com/sigma-andex.png","language":"PureScript","readme":"# HTTPurple 🪁\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/sigma-andex/purescript-httpurple/main/License)\n[![purescript-httpurple on Pursuit](https://pursuit.purescript.org/packages/purescript-httpurple/badge)](https://pursuit.purescript.org/packages/purescript-httpurple)\n\nA functional http server with a focus on type-safety and making the common case easy. \n\n**Note:** If you are looking for a http client, check out [`purescript-fetch`](https://github.com/rowtype-yoga/purescript-fetch)\n\n**Note**: This project was originally forked from the amazing [HTTPure](https://github.com/citizennet/purescript-httpure) http server framework, but has since deviated quite a bit. If you are coming from HTTPure you might want to have a look at the [differences to HTTPure](./docs/Differences.md).\n\n## ToC\n1. [Features](#features)\n1. [Installation](#installation)\n1. [Quick start](#quick-start)\n1. [Documenation](#documentation)\n1. [Examples](#examples)\n1. [Testing](#testing)\n1. [License](#license)\n\n## Features\n\n* λ fp-style http server \u0026 request handlers\n* 🛣 Powerful \u0026 type-safe routing dsl\n* 🕵🏻‍♂️ Easy json parsing and data validation\n* 🥪 Supports Node/Express middlewares\n* 📜 Extensive documentation \u0026 examples\n\n\n## Installation\n\n```bash\nspago install httpurple\n```\n\n## Quick start\n\n```purescript\nmodule Main where\n\nimport Prelude hiding ((/))\n\nimport HTTPurple\n\ndata Route = Hello String\nderive instance Generic Route _\n\nroute :: RouteDuplex' Route\nroute = mkRoute\n  { \"Hello\": \"hello\" / segment\n  }\n\nmain :: ServerM\nmain =\n  serve { port: 8080 } { route, router }\n  where\n  router { route: Hello name } = ok $ \"hello \" \u003c\u003e name\n```\n\nthen start the server\n\n```bash\n➜ spago run\n           Src   Lib   All\nWarnings   0     0     0  \nErrors     0     0     0  \n[info] Build succeeded.\nHTTPurple 🪁 up and running on http://0.0.0.0:8080\n```\n\nquery your server, e.g. using [httpie](https://httpie.io/)\n\n```bash\n➜ http http://localhost:8080/hello/🗺  \nHTTP/1.1 200 OK\nConnection: keep-alive\nContent-Length: 10\nDate: Sun, 22 May 2022 16:50:52 GMT\nKeep-Alive: timeout=5\n\nhello 🗺\n```\n\n## Documentation\n\nSee the [docs folder](./docs) for the in-depth guides. \n\n* [Basics](./docs/Basics.md) - Basic introduction to HTTPurple 🪁\n* [Routing](./docs/Routing.md) - Explanation of the routing dsl\n* [Requests](./docs/Requests.md) - Guide to request handling\n* [Response](./docs/Responses.md) - Guide to response handling\n* [Middleware](./docs/Middleware.md) - Guide to HTTPurple and Node.js middlewares\n* [Differences](./docs/Differences.md) - A detailed description of the differences to HTTPure\n\n## Examples\n\nHTTPurple ships with a number of [examples](./docs/Examples). To run an example,\nin the project root, run:\n\n```bash\nspago -x test.dhall run --main Examples.\u003cExample Name\u003e.Main\n```\n\nEach example's startup banner will include information on routes available on\nthe example server.\n\n## Testing\n\nTo run the test suite, in the project root run:\n\n```bash\nspago -x test.dhall test\n```\n\n## License\n\nThis is a fork of [HTTPure](https://github.com/citizennet/purescript-httpure), which is licensed under MIT. See the [original license](./LICENSES/httpure.LICENSE). This work is similarly licensed under [MIT](./License).\n","funding_links":[],"categories":["Http"],"sub_categories":["Http server"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsigma-andex%2Fpurescript-httpurple","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsigma-andex%2Fpurescript-httpurple","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsigma-andex%2Fpurescript-httpurple/lists"}