fn
A functional web framework.
http://github.com/positiondev/fn#readme
| LTS Haskell 24.28: | 0.3.0.2 |
| Stackage Nightly 2026-01-18: | 0.3.0.2 |
| Latest on Hackage: | 0.3.0.2 |
fn-0.3.0.2@sha256:500a3e1deb653b88d4a05d39393babc093c682fa787c16cc168056e0b86cc3a3,4417Module documentation for 0.3.0.2
- Web
- Web.Fn
Fn (eff-enn) - a functional web framework.
Or, how to do away with the monad transformers, and just use plain functions.
Example
See the example application in the repository for a full usage including database access, heist templates, sessions, etc.
Changes
-
0.3.0.2 Libby Horacek [email protected] 2017-6-13
- Update base dependencies to support GHC 8
- Add a stack.yml for 8.15
-
0.3.0.1.1 David Hartunian [email protected] 2017-6-30
- Add okJson helper for returning JSON strings as text
-
0.3.0.1 Daniel Patterson [email protected] 2016-3-11
- Change repository location, copyright.
-
0.3.0.0 Daniel Patterson [email protected] 2016-3-2
- Don’t parse request body by default, to make
Fnplay well with others (that want to parse the body themself). - Add
!=>connective that is like==>, but parses the request body. If you don’t use!=>, patterns withfileandfileswill fail. Also,paramwill only get query parameters. - Add
Routetype alias for the type ofpattern ==> handler. This is partly for convenience and partly to make upgrades easier (in the event that the types change). - Change
FromParamclass to take a list of all parameters matching a given name, which allows us to implement aMaybeinstance, a list instance, and makeparamManyredundant (though currently left in, for compatibility). This also makes the ergonomics of using optional parameters better. - Fix bug where
staticServewould allow you to break out of directory specified with...
- Don’t parse request body by default, to make
-
0.2.0.2 Daniel Patterson [email protected] 2016-1-20
- Fix for GHC 7.8, which cabal file said would work, but didn’t.
-
0.2.0.1 Daniel Patterson [email protected] 2015-12-4
- Fix bug in url routing where “/foo/bar”, “/foo/bar/”, and “/foo//bar” were all treated differently.
-
0.2.0.0 Daniel Pattersion [email protected] 2015-11-5
- Changed to having our own
FnRequesttype, which is a WAIRequestand the results of parsing the body for contents, since we need to be able to do that once and thread it through. - Add
fileandfilesmatchers, which match against and pass file uploads to handlers. - Add
staticServeto serve static files based on path.
- Changed to having our own
-
0.1.4.0 Daniel Pattersion [email protected] 2015-11-4
- Move
ctxtback to first parameter passed to handlers, via more continuations.
- Move
-
0.1.3.1 Daniel Pattersion [email protected] 2015-10-31
- Add
methodmatcher to match against HTTP method.
- Add
-
0.1.3.0 Daniel Patterson [email protected] 2015-10-30
- Allow nested calls to
route, by changingRequestinctxt. This necesitated changing it so that thectxtis passed to handlers last, instead of first, because we need to have completed matching before we can change the request. - Add
anythingroute matcher that matches anything. - Add
paramManymatcher that returns a list of values for the given query param. - Change
paramto fail if more than one value is in query string.
- Allow nested calls to
-
0.1.2.0 Daniel Pattersion [email protected] 2015-10-27
- Rename
paramOptionaltoparamOpt, to matchfn-extra’sHeistnaming ofattrandattrOpt. - Remove
paramPresent, because you can get that behavior by parsing toText.
- Rename
-
0.1.1.0 Daniel Patterson [email protected] 2015-10-26
- Rename
Paramclass toFromParam.
- Rename
-
0.1.0.0 Daniel Patterson [email protected] 2015-10-25
- Initial release.