<commit_before>= Divan, a C# library for CouchDB

Divan is a C# library under the MIT license for using CouchDB (http://www.couchdb.org).
It should be more or less API complete including bulk operations, attachments, views
and design documents etc. It is quite fast and designed to be flexible but not bloated. 

Divan has been developed in-house at Foretagsplatsen AB (www.foretagsplatsen.se) and is
being used in the new core system at Foretagsplatsen. It has unit tests (although could
benefit from more) and at least one sample console project included.

== License

Divan is under the MIT-license, see file LICENSE.txt.

== Features

* More or less complete regular CouchDB API implemented including bulk and attachments with reasonable abstractions.
* Has classes for design documents and view definition so you can create and manipulate your views from C#.
* Has LINQ support thanks to <NAME>! This means you can write limited queries in LINQ syntax.
* Has CouchDB-Lucene integration!
* Offers several "hooks" for your own subclasses in order to add specializations.

== Does it work under Mono?

You bet. Foretagsplatsen uses mainly windows (Visual Studio 2008 and .Net 3.5) but Divan
is meant to work fine in Mono too. Currently Mono has a bug in System.dll regarding HEAD HTTP
requests so we detect if we are running in Mono and then we fall back on using a regular GET.

Note that this bug has been <b>reported and fixed</b> in Mono trunk and should be available
in any mono release after 2.4.2.3 (I guess). Then we will remove that check.

== Getting started
1. Install git of course... :)
2. Clone Divan. The "official" repository is the one from Foretagsplatsen and we only have one branch there so far, and no tags yet:
	<b>git clone git://github.com/foretagsplatsen/Divan.git</b>
3. If you are on VS2008 or Monodevelop then I suggest double clicking the Divan.sln. Hopefully the rest works out fine.
4. If you are on Mono "CLI style" then the configure/Makefile should work as expected, it is "vanilla generated" from Monodevelop. Then you can also run unit tests, but note that these rely on a couchdb running locally:
	nunit-console2 -labels src/bin/Debug/Divan.dll
5. Run the "Trivial" sample console app. You can point it at a running CouchDB server:

	C:\Divan\samples\Trivial>bin\Debug\Trivial.exe 192.168.9.205 5984

6. Happy coding! And ask any questions on the mailinglist.

== Mailinglist
We have set up a regular Mailman mailinglist[http://krampe.se/mailman/listinfo/divan] for users and developers alike, please subscribe!

== Contributing
...is simple. <b>All contributions should be under the MIT license</b>. Just fork and make pull requests and we will try to integrate. Feel free to bring up anything on the mailinglist. We haven't started using any issue tracker yet, but we will if it gets more popular and we when we do a proper release.

== What about documentation?

At the moment documentation is... this file! :) But there are unit tests in CouchTest.cs and
CouchLuceneTest.cs and there is at least one sample project showing basic usage.
One more sample with more advanced usage is coming soon.

== Dependencies

The only dependencies and their tested versions are:

* Newtonsoft.JSON (3.5 Beta 4), MIT-licensed fast library for JSON, see: http://json.codeplex.com
* NUnit (2.4.8). Unit testing framework, see: http://www.nunit.org
* CouchDB (0.9.1, 0.9). Running on a server somewhere, see: http://www.couchdb.org
* If you want to use the Lucene parts of Divan, you also need CouchDB-Lucene (0.4) installed on the server, see: http://github.com/rnewson/couchdb-lucene/tree/v0.4

The two needed dlls are included in the lib directory.<commit_msg>Tweak to README about nunit-console2.<commit_after>= Divan, a C# library for CouchDB

Divan is a C# library under the MIT license for using CouchDB (http://www.couchdb.org).
It should be more or less API complete including bulk operations, attachments, views
and design documents etc. It is quite fast and designed to be flexible but not bloated. 

Divan has been developed in-house at Foretagsplatsen AB (www.foretagsplatsen.se) and is
being used in the new core system at Foretagsplatsen. It has unit tests (although could
benefit from more) and at least one sample console project included.

== License

Divan is under the MIT-license, see file LICENSE.txt.

== Features

* More or less complete regular CouchDB API implemented including bulk and attachments with reasonable abstractions.
* Has classes for design documents and view definition so you can create and manipulate your views from C#.
* Has LINQ support thanks to <NAME>! This means you can write limited queries in LINQ syntax.
* Has CouchDB-Lucene integration!
* Offers several "hooks" for your own subclasses in order to add specializations.

== Does it work under Mono?

You bet. Foretagsplatsen uses mainly windows (Visual Studio 2008 and .Net 3.5) but Divan
is meant to work fine in Mono too. Currently Mono has a bug in System.dll regarding HEAD HTTP
requests so we detect if we are running in Mono and then we fall back on using a regular GET.

Note that this bug has been <b>reported and fixed</b> in Mono trunk and should be available
in any mono release after 2.4.2.3 (I guess). Then we will remove that check.

== Getting started
1. Install git of course... :)
2. Clone Divan. The "official" repository is the one from Foretagsplatsen and we only have one branch there so far, and no tags yet:
	<b>git clone git://github.com/foretagsplatsen/Divan.git</b>
3. If you are on VS2008 or Monodevelop then I suggest double clicking the Divan.sln. Hopefully the rest works out fine.
4. If you are on Mono "CLI style" then the configure/Makefile should work as expected, it is "vanilla generated" from Monodevelop. Then you can also run the basic unit tests, but note that these rely on a couchdb running locally:
	nunit-console2 -labels -run=Divan.CouchTest src/bin/Debug/Divan.dll
5. Run the "Trivial" sample console app. You can point it at a running CouchDB server:

	C:\Divan\samples\Trivial>bin\Debug\Trivial.exe 192.168.9.205 5984

6. Happy coding! And ask any questions on the mailinglist.

== Mailinglist
We have set up a regular Mailman mailinglist[http://krampe.se/mailman/listinfo/divan] for users and developers alike, please subscribe!

== Contributing
...is simple. <b>All contributions should be under the MIT license</b>. Just fork and make pull requests and we will try to integrate. Feel free to bring up anything on the mailinglist. We haven't started using any issue tracker yet, but we will if it gets more popular and we when we do a proper release.

== What about documentation?

At the moment documentation is... this file! :) But there are unit tests in CouchTest.cs and
CouchLuceneTest.cs and there is at least one sample project showing basic usage.
One more sample with more advanced usage is coming soon.

== Dependencies

The only dependencies and their tested versions are:

* Newtonsoft.JSON (3.5 Beta 4), MIT-licensed fast library for JSON, see: http://json.codeplex.com
* NUnit (2.4.8). Unit testing framework, see: http://www.nunit.org
* CouchDB (0.9.1, 0.9). Running on a server somewhere, see: http://www.couchdb.org
* If you want to use the Lucene parts of Divan, you also need CouchDB-Lucene (0.4) installed on the server, see: http://github.com/rnewson/couchdb-lucene/tree/v0.4

The two needed dlls are included in the lib directory.
{'fraction_non_alphanumeric': 0.06743841701440302, 'fraction_numerical': 0.013595369497913581, 'mean_word_length': 4.110041265474553, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 8, 'xml': 0}, 'pii_count': 4, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '853617', 'n_tokens_mistral': 2157, 'n_tokens_neox': 2074, 'n_words': 1110}