Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


libCollections is an Objective-C library that brings methods from Smalltalk's collection protocol and Ruby's Enumerable mixin to Objective-C projects. libCollections adds these methods as categories to the Foundation framework's collections classes. (Not all of Ruby's Enumerable methods are implemented, but some of them aren't really relevant or useful and probably won't be.)

What does it run on?

libCollections uses C blocks extensively. I've only tested it on 10.6, but it should work on 10.5 as well. Currently it compiles as a dynamic library on OS X, and as a static library for iOS.

Can I use it now?

Maybe. The planned functionality is implemented for NSArray, NSSet, and NSDictionary, but it hasn't been extensively tested (to be honest, the unit tests are kind of pathetic), nor has the code been written as "tightly" or efficiently as it could be. It hasn't been tested in an iOS app at all. This is an early in-development version at the moment, so use at your own risk.

Who created this?

libCollections is written by Michael Dippery. I had been meaning to create such a library for a while (I like the collect: and inject:into: methods from Smalltalk and Ruby, and miss them in Objective-C), but I was motivated to finally sit down and write the code by a post on Stack Overflow.


Bringing Smalltalk and Ruby collections methods to Objective-C since 2011







No packages published