SharpConnector is a .NET library designed to streamline integration with NoSQL databases. It provides a unified interface that simplifies database operations, eliminating the need to develop custom logic for each specific database connector. Since each NoSQL database has its own unique characteristics—such as being document-oriented or key-value-based—SharpConnector abstracts these differences, providing a consistent and simplified access layer to accelerate development.
SharpConnector offers a unified interface for performing CRUD operations on various types of NoSQL databases. While NoSQL databases often differ in their internal structures (e.g., key-value stores, document databases), this library abstracts these distinctions, enabling streamlined key-value-based CRUD operations. Through SharpConnector, you can use a consistent interface to perform Insert, Get, Delete, and Update operations across multiple NoSQL systems, currently supporting:
- Redis (key-value)
- MongoDB (document-oriented)
- LiteDB (embedded document database)
- EnyimMemcached (key-value)
- RavenDB (document-oriented)
SharpConnector thus simplifies the development process, providing flexibility and compatibility across diverse NoSQL paradigms without the need to handle specific database implementations.
To get started with SharpConnector, configure your connectionString and specify the connector instance type. Then, add the ConnectorConfig node within your appsettings.json file. Here’s an example configuration for a Redis connector:
{
"ConnectorConfig": {
"Instance": "Redis",
"DatabaseNumber": 0,
"ConnectionString": "redisServer:6380,password=password,ssl=True,abortConnect=False"
}
}
Once configured, create a new SharpConnector client, specifying the payload type (e.g., string):
SharpConnectorClient<string> client = new SharpConnectorClient<string>()
Alternatively, you can integrate SharpConnector client using dependency injection. Here’s how to register the SharpConnector service with a string payload type:
// Register the SharpConnector services with string payload type.
builder.Services.AddSharpConnectorServices<string>();
This setup provides flexibility in working with different payload types and makes SharpConnector easy to use within dependency injection configurations.
Thank you for considering to help out with the source code! If you'd like to contribute, please fork, fix, commit and send a pull request for the maintainers to review and merge into the main code base. If you want to add new connectors, please follow these three rules:
- Each new connector must implement the IOperations interface.
- For each new connector the relevant UnitTest class must be present.
- Any third party libraries added in the code must be compatible with the MIT license, and the license must also be made explicit in the code.
- Setting up Git
- Fork the repository
- Open an issue if you encounter a bug or have a suggestion for improvements/features
SharpConnector source code is available under MIT License, see license in the source.
SharpConnector uses the following externals references:
- StackExchange.Redis see license here
- MongoDB.Driver see license here
- LiteDB see license here
- EnyimMemcached see license here
- RavenDB see license here
Please contact at francesco.delre[at]protonmail.com for any details.