Skip to content
A Mesos binding for Clojure
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


A Clojure library that provides integration with Mesos via the Java API.

Build Status


This library has the exact same functions and callbacks as the Java Mesos API, except for the Log API. You can declare an instance of a Scheduler or an Executor with a proxy-like interface:

(def myscheduler
  (clj-mesos.scheduler/scheduler (registered [driver fid mi]
                                   (println "registered" fid mi))
                                 (resourceOffers [driver offers]
                                   (clojure.pprint/pprint offers))))

Any unimplemented callbacks will just be noops.

To use the Scheduler or Executor, you can create a driver and use the functions to activate it:

;; Create a driver
(def overdriver
    myscheduler {:user "" :name "testframework"} "localhost:5050"))

;; Call a function on the driver
(clj-mesos.scheduler/start overdriver)
(clj-mesos.scheduler/stop overdriver))

Note that the functions you call on the driver are using normal Clojure case rules: all lowercase, with -s separating the words. On the other hand, the callbacks use the Java camelCase standard.


clj-mesos has been used to support a major production workload since June 2014.


Copyright © 2013 David Greenberg

Distributed under the Eclipse Public License, the same as Clojure.

You can’t perform that action at this time.