  For any ring $R$, we introduce an invariant in the form of a partially
ordered abelian semigroup $\mathrm{S}(R)$ built from an equivalence relation on
the class of countably generated projective modules. We call $\mathrm{S}(R)$
the Cuntz semigroup of the ring $R$. This construction is akin to the
manufacture of the Cuntz semigroup of a C*-algebra using countably generated
Hilbert modules. To circumvent the lack of a topology in a general ring $R$, we
deepen our understanding of countably projective modules over $R$, thus
uncovering new features in their direct limit decompositions, which in turn
yields two equivalent descriptions of $\mathrm{S}(R)$. The Cuntz semigroup of
$R$ is part of a new invariant $\mathrm{SCu}(R)$ which includes an ambient
semigroup in the category of abstract Cuntz semigroups that provides additional
information. We provide computations for both $\mathrm{S}(R)$ and
$\mathrm{SCu}(R)$ in a number of interesting situations, such as unit-regular
rings, semilocal rings, and in the context of nearly simple domains. We also
relate our construcion to the Cuntz semigroup of a C*-algebra.
