Set data structure for efficient repeated insertions I'm looking for a space-efficient data structure that holds sets (no repetition) of wordsize elements and supports fast insertion (amortized O(1)).  By "space-efficient" I mean, ideally, $n + o(n)$ words to store $n$ elements.

Being a set is an important part of the question: if each element is added $\log n$ times the space used can't be $n\log n$.

The structure should also support listing its elements (reasonable efficiently); any sane structure should have no trouble here.  (Fast membership queries are a plus.)
I think Raman and Rao's "Succinct Dynamic Dictionaries and Trees"  meets the bounds you specify. From the abstract:


  We first give a representation of a set $S \subseteq U =
\{0, \dots , m − 1\}, |S| = n$ that supports membership queries in $O(1)$ worst
  case time and insertions into/deletions from $S$ in $O(1)$ expected amortised time. The representation uses $B + o(B)$ bits, where $B = \lceil lg \binom{m}{n} \rceil$ is the information-theoretic minimum space to represent $S$.