Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

added .gitignore, updated README.md

  • Loading branch information...
commit dc343b97dd36a9ebc83e7e783cdd144fcf725ef4 1 parent c1b7388
@bdionne authored
Showing with 84 additions and 2 deletions.
  1. +68 −0 .gitignore
  2. +16 −2 README.md
View
68 .gitignore
@@ -0,0 +1,68 @@
+# copied from jChris .gitignore
+*.beam
+*.gz
+*.tpl
+*.o
+*.lo
+*.m4
+*.in
+*.in~
+
+configure
+autom4te.cache
+build-aux
+
+# ./configure
+
+Makefile
+bin/Makefile
+config.h
+config.log
+config.status
+etc/Makefile
+etc/couchdb/Makefile
+etc/default/Makefile
+etc/init/Makefile
+etc/launchd/Makefile
+etc/logrotate.d/Makefile
+libtool
+share/Makefile
+src/couchdb/.deps/
+src/couchdb/Makefile
+src/mochiweb/Makefile
+stamp-h1
+test/.deps/
+test/Makefile
+var/Makefile
+
+# for make
+
+bin/couchdb
+bin/couchdb.1
+bin/couchjs
+bin/couchjs.1
+etc/couchdb/default.ini
+etc/launchd/org.apache.couchdb.plist
+etc/logrotate.d/couchdb
+src/couchdb/.libs/
+src/couchdb/couch.app
+src/couchdb/couch_erl_driver.la
+src/couchdb/couchjs
+src/couchdb/edoc-info
+src/couchdb/erlang.png
+src/couchdb/stylesheet.css
+test/local.ini
+
+# for make dev
+
+bin/.deps/
+bin/couchjs_dev
+bin/couchpw
+etc/couchdb/default_dev.ini
+etc/couchdb/local_dev.ini
+utils/run
+tmp
+
+# crashes
+**/*.dump
+**/*.bak
View
18 README.md
@@ -1,8 +1,22 @@
-erl-couch : A couchdb client that works with inets or ibrowse
+erl-couch : An Erlang based CouchDB client
======================
erl-couch is a CouchDB client that picks up from <a href="http://code.google.com/p/erlcouch/">erlcouch</a> (which has been discontinued).
The idea is to complete the implementation to use ibrowse as well as inets, to see if ibrowse, with it's connection pooling is more suitable than <a href="http://github.com/ngerakines/erlang_couchdb/tree/master">erlang-couchdb</a> in terms of simulating multiple clients on the same machine. Erlang-couchdb creates a new socket for each api call and was designed to be simpler.
-erl-couch spans a process for each host and for each database. For the stress tests we're cobbling together for couchdb this hopefully will allow us to simulating more clients from the same machine.
+erl-couch spawns a process for each host and for each database. For the stress tests we're cobbling together for couchdb this hopefully will allow us to simulate multiple clients from the same machine.
+
+src/couch.erl
+-------------
+
+This first version basically is erlcouch updated to the latest CouchDB and the with the addition of iBrowse support as well as inets. Most of the calls take an additional Options argument. For example update_doc takes a {force, true} option that retrieves the current revision and uses it to retry the update. What seems awkwatd is these Options are appended to the options passed in when creating the host and when creating the DB. When the request is finally sent, all these options are used to construct the appropriate url. This seems like a lot of list munging, particularly when each Host and each Db is a separate Pid.
+
+src/couch2.erl
+--------------
+
+This second version removes the Options from most of the api calls, and adds an Args to the appropriate ones. Each Host and Db is a pid but the urls are constructed once and passed around through the calls. When the requests are sent over ibrowse and inets, the Args paramaters are constructed. Each api call returns either {ok, Json} or {error, Json, Raw}.
+
+I'm not sure how useful an api at this low level is for applications, the two scenarios I have in mind are 1. testing and 2. perhaps a server side external.
+
+
Please sign in to comment.
Something went wrong with that request. Please try again.