Simol (formerly Simple Savant) is a .NET object-persistence framework for Amazon SimpleDB written in C#. It supports .NET-style parameterized selects; asynchronous operations; lexicographical date and number formats; integrated caching; full-text search, and more.
- Mapping object properties to SimpleDB attributes
- .NET-style parameterized select commands
- Full-text searching/indexing with Lucene.NET
- Attribute spanning and compression to store property values larger than SimpleDB 1024 byte limit
- Attribute encryption
- Formatting support for most .NET value types including all numeric types, nullable types, generic collections, TimeSpan, DateTime, Enum, and Guid
- Reliable-writes that ensure cross-domain data-consistency
- Date and number formats that support lexicographical ordering
- Asynchronous support for all operations
- Unlimited select results in a single call and transparent handling of SimpleDB query timeouts
- Object versioning using SimpleDB conditional puts
- Customizable data constraint/validation logic
- Integrated read/write caching
- Automatic domain creation
- Compatible with .NET 3.5 and higher
About the New Name
Simol is a portmanteau of SimpleDB + Mole. After much consideration the project was renamed because:
- There are several existing open-source projects/software products using the name "Savant". Simol is both shorter and more distinctive.
- Renaming as part of the move to a 1.0 stable release offered the opportunity for a clean break with previous releases to clean up the API and remove obsolete code accumulated over 2+ years of beta use and feedback
- Better logo potential :)
The core behavior and functionality of Simol is nearly 100% compatible with Simple Savant, however there are some breaking API changes. See the Simol v1.0.0
release notes for more information on converting.
Simol was originally developed to support GridRoom, a site for collaborative sports video analysis: