Not currently logged in. Login now.

Libraries for Category 'Web Server Libraries'

General
Ring-ServeRing-Serve provides a convenient way of starting a web server for a Ring handler.
lein-ringRing middleware that automatically reloads modifed source files
ring-reload-modifiedRing middleware that automatically reloads modifed source files
ConjureConjure is a Rails like framework for the Clojure programming language
ring-persistent-cookiesring-persistent-cookies gives you ring.middleware.cookies compatible cookies with an expiration date.
NoirNoir is a micro-framework that allows you to rapidly develop websites in Clojure.
clj-vaadinClojure wrapper for the Java Vaadin web development framework.
ImmutantA platform for Clojure apps built on JBoss AS7
ringMonA Ring middleware that injects single monitoring page into a Clojure web application based on Ring library or on higher level web frameworks such as Noir or Compojure. It is also easily added as a dev dependency to any Clojure applications as well.
crawlistaCrawlista is a support library for Clojure applications that crawl the Web.
JoodoBorn of a need to build fast, clean web applications, Joodo uniquely satisfies a need of Clojure frameworks. Taking inspiration from the self-discipline of martial arts and the attention to detail of Old World artisans, Joodo is a carefully crafted tool that will aid you in forging the best applications you can imagine.
PedestalPedestal is a web application framework written in Clojure that aims to bring both the language and its principles (Simplicity, Power and Focus) to client and server-side development.
Templating
SliceWrite composable slices of html, css, and js in Clojure.
Hiccup-BridgeHiccup-bridge is a conversion tool between html and the functions which include hiccup vector.
clj-hamlclj-haml is small HTML template library for Clojure inspired by the Ruby template library Haml (http://haml.hamptoncatlin.com/).
EnliveA selector-based (à la CSS) templating and transformation system for Clojure
Clj-StringTemplateClj-StringTemplate is a simple Clojure wrapper around the StringTemplate library.
fleetTemplating system for Clojure
HiccupHiccup is a library for representing HTML in Clojure. It uses vectors to represent tags, and maps to represent a tag's attributes.
flutterFlutter: Hiccup based HTML form fields for clojure.
clj-soyA library for using Google's Closure Templates in Clojure.
tinselSelector-based templates with Hiccup
clostache{{ mustache }} for Clojure.

Compliant with the Mustache spec since version 1.0. Supporting lambdas since version 1.1.
mustache.cljmustache.clj - Logic-less {{mustache}} templates for Clojure. mustache.clj is a (yet another) implementation of the Mustache template system for Clojure.

By preprocessing template into a tree like data structure, It's quite fast.
ring.velocityA Clojure library designed to render velocity template for ring/compojure in clojure.
FormativeA Clojure library for dealing with web forms. In particular, it can:

- Render a form via pluggable renderers (comes with Bootstrap and other renderers built in)
- Parse form data from Ring params
- Validate parsed data using Verily
Security
ring-basic-authenticationRing middleware to enforce basic authentication as described in RFC2617 section 2
ring-anti-forgeryThis middleware prevents CSRF attacks by providing a randomly-generated anti-forgery token.
FriendAn extensible authentication and authorization library for Clojure Ring web applications and services.
clauthThis is a simple OAuth 2 provider that is designed to be used as a primary authentication provider for a Clojure Ring app.

It currently handles OAuth2 bearer authentication and interactive authentication.
friendAn extensible authentication and authorization library for Clojure Ring web applications and services
friend-oauth2friend-oauth2 is an oauth2 workflow for Chas Emerick's Friend library.
Request Handling
ringRing is a Clojure web applications library inspired by Python's WSGI and Ruby's Rack. By abstracting the details of HTTP into a simple, unified API, Ring allows web applications to be constructed of modular components that can be shared among a variety of applications, web servers, and web frameworks.
SandbarA Clojure web application library with higher level abstractions for Compojure and Ring
ring-etag-middlewareCalculates etags for ring responses and returns 304 responses when appropriate.
ring-gzip-middlewareGzips ring responses for user agents which can handle it.
ring-json-paramsRing middleware for parsing JSON into params
session-expirySession-expiry is a Clojure/Ring middleware that set session expiration.
ring-upload-progressProvide upload progress data in ring session
ClotheslineA port of erlang webmachine to clojure. Clothesline offers a modular way to provide HTTP services that behave correctly according to the HTTP 1.1 specification. It is particularly useful for services that heavily leverage the HTTP spec, headers, and behaviors. But, it can be useful even for simple services because of the fine-grained control it gives over the decision-making process for web requests.
RRSSA simple Ring session store implemented on top of Redis using Jedis.
mongodb-sessionMongodb-session use mongodb as a Clojure/Ring's http session storage.
ring-session-riakThis permits you to store your ring session in riak.
Ring Java ServletAllows you to embed ring handlers in existing java web applications without having to add an AOT phase to your build process, by providing you with a generic way to declare servlets in your web.xml, and where the clojure ring handler is located.
ring-partial-contentRing middleware to provide Partial Content responses as described in RFC2616 section 10.2.7.
clojaxClojax reduces repetition when writing ajaxy web applications. Instead of having to write the server side function, the route that calls it, and the javascript that ajaxes the route, defajax writes the latter two from the former.
ring-clj-paramsA Ring middleware that augments :params according to a parsed Clojure data literal request body.
Aging Session A memory based ring session store that has a concept of time. The primary goal is to allow the session store to deallocate old sessions. While much of this may be written on top of the standard ring session store, there is ultimately no way to get rid of sessions that are no longer being visited.

Useful for expiring sessions or requiring reauthentication after of period of inactivity.
lib-noirA set of libraries for ring apps, including stateful sessions.

All of these libraries were split out from the Noir web framework for your enjoyment. There are libraries/middleware for stateful sessions, validation, cookies, as well as utilities for creating ring response maps (higher level than ring.util.response) and encrypting passwords and such.

These libraries will be maintained separate from Noir, and if you already use the Noir web framework, you already have this library. Nothing in here is specific to Noir and the purpose of it is to be used from any ring-based web framework, such as mustache and compojure.
Infrastructure
App Engine MagicThe appengine-magic library attempts to abstract away the infrastructural nuts and bolts of writing a Clojure application for the Google App Engine platform.
ring-httpcore-adpaterRing adapter for the Apache HttpCore webserver
ring-mongrel2-adapterRing Mongrel2 adapter.
ring-netty-adapterNetty Support for Ring. Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients.
ring-jetty7-adapterJetty 7 adapter for ring
ring-servlet-middlewareExposes information from the underlying servlet. Also includes a dummy wrapper for simulating a servlet environment, which is useful during development.
Routing
CompojureCompojure is a small, open source web framework for the Clojure programming language.
CloutClout is a library for matching Ring HTTP requests. It uses the same routing syntax as used by popular Ruby web frameworks like Ruby on Rails and Sinatra.
FjordA minimal ring app framework
MoustacheMoustache is a micro web framework/internal DSL to wire Ring handlers and middlewares.
funkywebfunkyweb is a clojure web framework with route inference. It uses the name of the controller and actions to generate routes and url helpers.
CascadeWelcome to Cascade! Cascade is a web framework for Clojure that emphasizes idiomatic use of Clojure while drawing inspiration from the Apache Tapesty web framework.
route-oneRoute One is a tiny Clojure library that generates HTTP resource routes (as in Ruby on Rails, Jersey, Noir and similar modern Web application frameworks). It is meant to be used in HTTP clients, programs that deliver emails with links, testing environments and so on.

Route One is intentionally small and has very limited feature scope.
RemixMix and match machinery in Clojure for web and sql.
REST
Compojure-restCompojure-rest is a thin layer for building RESTful applications on top of compojure. It is loosely modeled after webmachine. It provides a bunch of decorates which can be combined to provide a sophisticated implementation of the HTTP RFC.
Rest-servRest-serv is a lib for simple REST services inspired by Mark McGranahan's great post on building Clojure REST APIs.
wakefulWakeful is a Restful routing alternative for Clojure. It makes it really easy to connect your web api to namespaces in your project.
liberatorLiberator is a Clojure library for building RESTful applications.
liberator-bootstrapA simple example of how to use the liberator library for developing RESTful APIs, in a project.
LiberatorLiberator is a Clojure library that helps you expose your data as resources while automatically complying with all the relevant requirements of HTTP specification (RFC-2616). Your resources will automatically gain useful HTTP features, such as caching and content negotiation. Liberator was inspired by erlang’s webmachine. By following the constraints and requirements in RFC-2616 liberator will enable you to create application according to a REST architecture.
Validation
form-dot-cljForm-dot-clj is library for handling the display and validation of forms. It Supports HTML5 forms, javascript validation and plain HTML. It should work with most methods of generating HTML.
pourpour is a web form validation library for the Clojure programming language
clj-declineclj-decline is a validation library that hopefully will turn out to be simple enough to be useful.

clj-decline does not place limits on what it can validate. It does not restrict itself to web and will never do so. With regards to the kind of rejection messages (errors) it can generate, the only restriction is that they should be indexed by a key.
Javascript/CSS
clojurejsClojure library for translating a Clojure subset language to Javascript.
GakaGaka is a CSS-generating library for Clojure inspired partly by Sass and similar to Hiccup.
CSSGenA clojure library to generate CSS code using an embedded domain-specific language (EDSL). In plain words: generate CSS files by writing clojure code.
ScriptjureScriptjure is a Clojure library for generating javascript from Clojure forms. Its primary goal is to make it simple to embed "glue" javascript in Clojure webapps. Generated Scriptjure javascript is intended to be readable.
clj-styleA CSS generation library for Clojure. It extends the gaka library with a few convenience macros and functions to provide a little bit different interface. While there should be no issues using pieces of both clj-style and gaka, you would generally only use one.