Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

update docs

  • Loading branch information...
commit ca21b1a2ad0efe6776f96860b0eb601cb6af0afa 1 parent bb0b761
@sunng87 authored
Showing with 31 additions and 10 deletions.
  1. +20 −1 README.md
  2. +11 −9 slacker.org
View
21 README.md
@@ -9,7 +9,7 @@ because slacker requires it to work on clojure 1.2.
slacker is growing.
-### RPC vs Remote Eval
+### Slacker VS. Remote Eval
Before slacker, the clojure world uses a *remote eval* approach for
remoting ([nREPL](https://github.com/clojure/tools.nrepl),
@@ -30,6 +30,25 @@ eval, RPC (especially slacker) has some pros and cons:
high-order functions and lazy arguments. Due to the limitation of
serialization, slacker has its difficulty to support these features.
+### Slacker VS. Thrift, Protobuf
+
+Since clojure is also hosted on Java virtual machine, you can use
+existed Java RPC framework in clojure, like protobuf and thrift.
+
+#### pros
+
+* No schema needed
+* No additional code generation
+* Transparent, non-invasive API
+* Pure clojure way
+* Highly customizable (interceptor framework)
+
+#### cons
+
+* Currently, there is no cross language support. Slacker is only for
+ clojure. I am planning to add nodejs support via clojurescript.
+* Potential performance improvements.
+
## Example
An pair of example server/client can be found under "examples", you
View
20 slacker.org
@@ -12,24 +12,18 @@
friendly for debugging. This also enables support for
clojurescript.
**** DONE Build-in http server (via aleph.http)
-**** Slacker as a Ring handler (out of scope, maybe in a new project)
*** TODO Upstream enhancement :server:client:
enhance performance of upstream libraries:
- carbonite (0.1.1, keyword enhancement)
- - aleph
+ - aleph (Zach Tellman is working on lamina performance improvement)
*** DONE Build-in interceptors :server:
some build-in interceptors for slacker server:
- function invocation stats (expose via JMX)
- logging
- - memorize function
+ - memorize function (discard)
- slow watch dog
interceptors are better to shipped as standalone submodules
(depends [[Server side interceptor framework]])
-*** Browser clojurescript support :client:
- support clojure RPC via javascript XMLHttpRequest. provide a
- consistent client style in clojurescript.
- (depends [[Slacker as a Ring handler]])
- (out of scope, maybe in a new project. "restful slacker"?)
*** TODO Nodejs clojurescript support :client:
support clojure RPC with nodejs tcp client. provide a consistent
client style in clojurescript.
@@ -50,11 +44,19 @@
A new slackerc-zk reads function/client from zookeeper and also
get notified with server changes.
Detailed and updated design can be found here: http://lazypress.cloudfoundry.com/p/i
-*** TODO server introspection
+*** DONE server introspection
Add new protocol command to get metadata of slacker functions.
**** get all functions exposed by the server
**** get metadata of a particular function
+** Lower Priority Features
+*** Browser clojurescript support :client:
+ support clojure RPC via javascript XMLHttpRequest. provide a
+ consistent client style in clojurescript.
+ (depends [[Slacker as a Ring handler]])
+ (out of scope, maybe in a new project. "restful slacker"?)
+**** Slacker as a Ring handler (out of scope, maybe in a new project)
+
** Releases
*** 0.3.0

0 comments on commit ca21b1a

Please sign in to comment.
Something went wrong with that request. Please try again.