---
layout: post

title: PouchDB 3.0.4&#58; Night of the Living Attachments

author: Calvin Metcalf

---

This week we present [PouchDB 3.0.4](https://github.com/pouchdb/pouchdb/releases/tag/3.0.4), which fixes a bunch of stuff with attachments. Now the kittens generated by the [3.0.0 release]({{ site.baseurl }}/2014/08/12/pouchdb-3.0.0.html) may be safely stored in Pouch.

{% include img.html src="kittens_small.jpg" alt="Kittens" %}

### Attachmentspalooza

- In Firefox, different attachments now (correctly) have different MD5 hashes. Previously they were just hashes of the string `'[Object] object'`.  With this, we also now check that the hashes we produce are identical to the ones that CouchDB produces (with the exception of plaintext ones due to Erlang being weird and not having ASCII strings) ([#2698](https://github.com/pouchdb/pouchdb/issues/2698)).
- Weirdness in Chrome 37-39 with FileReader and empty blobs is now fixed ([#2713](https://github.com/pouchdb/pouchdb/issues/2713)).
- Fix for [a bug in Chrome 37](https://code.google.com/p/chromium/issues/detail?id=408120) relating to blobs in IndexedDB ([#2701](https://github.com/pouchdb/pouchdb/issues/2701)).
- HTTP pouches now support buffer/blob data in attachments ([#2577](https://github.com/pouchdb/pouchdb/issues/2577)).

### Other fixes in 3.0.4

* When running sync, it only creates one instance for each database ([#2662](https://github.com/pouchdb/pouchdb/pull/2662)).
* Performance improvements for persisted map/reduce, and it also uses less space ([pouchdb/mapreduce#191](https://github.com/pouchdb/mapreduce/pull/191) and [pouchdb/mapreduce#185](https://github.com/pouchdb/mapreduce/issues/185)).
