==============================================
zc.intid - Reduced-conflict integer id utility
==============================================

This package provides an API to create integer ids for any object.
Objects can later be looked up by their id as well.  This functionality
is commonly used in situations where dealing with objects is
undesirable, such as in search indices or any code that needs an easy
hash of an object.

This is similar to the ``zope.intid`` package, but with two distinct
advantages:

- Induces fewer conflict errors, since object ids are not used as part
  of the stored data.  The id for an object is stored in an attribute of
  the object itself, with the attribute name being configured by the
  construction of the id utility.

  This does require that the object "play nice" with this approach.  At
  a minimum, the attributes used to store ids on objects should

  - persist with the rest of the object's state, and

  - not be modified by the object.

- Fewer dependencies.

Events generated on the assignment and removal of ids are generated by
the ``register`` and ``unregister`` methods rather than by the callers
of those methods.


Changes
=======

1.0.1 (2011-06-27)
------------------

- Make the behavior of the utility's `getId` method consistent with
  zope.intid in regard to its handling of proxied objects.

1.0.0 (2011-02-21)
------------------

- Initial release.
