/Sakismet

The fully type-safe, functional Scala library for Akismet

Primary LanguageScalaBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Scala library for Akismet (http://akismet.com/).

Provides the full Akismet API (http://akismet.com/development/api/) in pure functional Scala.

Basic usage:

import sakismet._

val s = Sakismet("key", "blog")
	.user_ip("ip")
	.referrer("ref")
	
s.verify_key

Non-blocking usage for NIO:

import sakismet._
import dispatch._

val s = Sakismet("key", "blog")(new nio.Http)
	.user_ip("ip")
	.referrer("ref")

val f = s.verify_key // f is a Dispatch non-blocking future
f()

Sakismet is fully type-safe and functional, containing no mutable state. It uses a type-safe builder pattern, leveraging Scala's structural types and generalized type constraints.

The Sakismet runtime is built on Dispatch (http://dispatch.databinder.net/), a pure Scala library for conducting HTTP interaction. Sakismet fully supports Dispatch's HttpExecutor API, allowing the user to freely switch between the Dispatch blocking and non-blocking implementations.

Sakismet is built with SBT 0.11.2 (https://github.com/harrah/xsbt) for Scala 2.9.1.