Say Sasa! (Think "Big collection of .Net extensions, functions, methods and such")


Today's framework project of the week by Sandro Magi is one one of those kitchen sink, someone solving his real world problems, yet taking the time to clean it up, wrap it up and share his work and experience with you and me framework.

It's got some "standard" features but also some pretty cutting edge and pretty cool ones too.

And besides binaries (GNU or LGPLv2), the source for everything is available too!



Sasa is a collection of extensions to the .NET framework organized in logical, often standalone assemblies.

Sasa: no deps
* tuples
* IEnumerable extensions
* thread-safe + null-safe events
* numeric extensions
* Option type
* lazy type

Sasa.Binary: -
* low-level bit-twiddling functions
* portable BinaryReader/Writer

Sasa.Collections: Sasa, Sasa.Binary
* purely functional collections, ie. list, dictionary, queue, set, etc.

Sasa.Mime: -
* media types and file extensions

Sasa.Numerics: -
* statistical and numerical functions

Sasa.Net: Sasa, Sasa.Collections
* full MIME message parsing
* POP3 client
* Rfc822 header parsing

Sasa.Contracts: Sasa
* Code Contracts impl.

Sasa.Concurrency: Sasa
* software transactional memory
* Concurrent Revisions fork-join framework

Sasa.Parsing: Sasa
* extensible Pratt parser

Sasa.Dynamics: Sasa
* type-safe reflection

Sasa.Linq: -
* LINQ expression visitors and query providers

...and much more!

To get a real feel for everything that's in this cool collection, check out the doc's,



Source? Yep! (and you can see that it's under active development too Smiley


Here's a snap of the binary drop (to highlight the "standalone assemblies" statement):


Want to see more? Check out Sandro's blog posts on Sasa,

What kind of Sasa stuff has he written recently?

Hopefully that has wet your appetite a little. Now it's up to you to grab it and start Sasa'ing! (I just like saying, "Sasa..." can you tell? Wink

The Discussion

  • User profile image

    Sasa author here, thanks for the nice write up! I have a lot more posts coming. My goal is to write one post a day on average, until every abstraction in the v0.9.4 release is covered, then v0.9.4 final will be released. It's been a long time coming.

  • User profile image

    @naasking: No, thank you! Smiley

  • User profile image

    @naasking: That would be fantastic. Trouble with most extensions is that most features never get used because you just never know what is available or have simple examples of how to use them. Thanks for making this available to us all and the time you devoted to it as well.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.