Although ServiceStack is an opinionated web service framework (i.e. includes most components required to make high-performance web services), each feature is built around pure/clean, dependency-free C# interfaces enabling the use of alternate, pluggable, xml/config-free and testable C# components.
By default ServiceStack includes high-performance replacements for ASP.NET's Session, Caching, Logging, Authentication, Membership and Configuration providers yielding config-free, testable and mockable alternatives that can be hosted in or outside of an ASP.NET web host.
Whilst any providers contributed by the community that require any external dependencies are kept here (with links to their NuGet packages):
ServiceStack's built-in Authentication and Authorization plugin provides an extensible and pluggable model supporting multiple caching providers (for fast pre-request session access) as well as multiple datastore providers for long-term persistance of User Registration and Authentication information.
Caching Providers (ICacheClient)
- In Memory:
MemoryCacheClient
in ServiceStack - Redis:
RedisClient
,PooledRedisClientManager
andBasicRedisClientManager
in ServiceStack.Redis - Memcached:
MemcachedClientCache
in ServiceStack.Caching.Memcached - Azure:
AzureCacheClient
in ServiceStack.Caching.Azure - created by Manuel Nelson - Amazon:
DynamoDbCacheClient
in ServiceStack.CacheAccess.AwsDynamoDb - created by Mike Pugh
User Auth Repositories (IUserAuthRepository)
- OrmLite:
OrmLiteAuthRepository
in ServiceStack - Redis:
RedisAuthRepository
in ServiceStack - In Memory:
InMemoryAuthRepository
in ServiceStack - Mongo DB:
MongoDBAuthRepository
in ServiceStack.Authentication.MongoDB - created by Assaf Raman - NHibernate:
NHibernateUserAuthRepository
in ServiceStack.Authentication.NHibernate - created by Joshua Lewis
As the original compression libraries in .NET 2.0 (they're better now) were both slow and yielded in-efficiently large results, we've enabled adapters to plug-in alternative compression libraries. The ServiceStack.Compression project provides GZip and Deflate compression adapters for the excellent ICSharpCode libraries which you can enable ServiceStack to use with:
StreamExtensions.DeflateProvider = new ICSharpDeflateProvider();
StreamExtensions.GZipProvider = new ICSharpGZipProvider();