c208dffb7b
* v0.8.1 * Add the HTTP version to `Request` The `node-http` `Request` has the HTTP version on it. We can make it available in our `Request` for consumers. We went the naive approach first and typed it as a string. There is some structure to the version, so we could attempt to parse it. It's unclear what we would do if parsing failed though. Maybe we want something like: ```PureScript data Version = Known { major :: Int, minor :: Int } | Unknown String ``` That would allow us to parse the known format, and fallback to accepting anything else. It's definitely something to discuss anyway. * Make HTTP version its own data type There are only a handful of HTTP versions that are commonly used. We can talk about those explicitly and fallback to any arbitrary version. The changes here try to follow the patterns elsewhere in the code base. Hopefully, it's not too far off. |
||
---|---|---|
docs | ||
src | ||
test | ||
.bowerrc | ||
.gitignore | ||
.travis.yml | ||
bower.json | ||
Contributing.md | ||
History.md | ||
License | ||
Makefile | ||
package.json | ||
psc-package.json | ||
Readme.md | ||
Releasing.md | ||
shell.nix | ||
yarn.lock |
HTTPure
A purescript HTTP server framework.
HTTPure is:
- Well-tested (see our tests)
- Well-documented (see our documentation)
- Built to take advantage of PureScript language features for flexible and extensible routing
- Pure (no
set
,get
,use
, etc)
Status
This project is currently fairly stable, but has not reached it's 1.0 release yet. You can track what's left before it gets there by looking at our roadmap. The API signatures are mostly stable, but are subject to change before the 1.0 release if there's a good reason to change them.
If you'd like to help us get to 1.0 quicker, please contribute! To get started, check our contributing guide.
Installation
psc-package install httpure
Quick Start
module Main where
import Prelude (($))
import Effect.Console as Console
import HTTPure as HTTPure
main :: HTTPure.ServerM
main =
HTTPure.serve 8080 router $ Console.log "Server now up on port 8080"
where
router _ = HTTPure.ok "hello world!"
Documentation
Module documentation is published on Pursuit.
You can also take a look at our guides.
Examples
HTTPure ships with a number of examples. To run an example, in the project root, run:
make example EXAMPLE=<Example Name>
Each example's startup banner will include information on routes available on the example server.
Testing
To run the test suite, in the project root run:
make test
Contributing
We are open to accepting contributions! Please see the contributing guide.
People
HTTPure is written and maintained by Connor Prussin and Petri Lehtinen.
We are open to accepting contributions! Please see the contributing guide.