About

RSQL is a lightweight, simplified alternative to Microsoft SQL Server.

RSQL is a free implementation of the basic TSQL commands (TSQL is the SQL dialect used by Microsoft SQL Server).

RSQL is published under the free license GPL v3.

RSQL has been designed as a drop-in replacement for MS SQL Server, suitable for C# applications using only basic TSQL commands.

RSQL can manage millions of records, each table and index being stored in separate files.

Main Specifications

RSQL runs on Linux and Windows.

RSQL is written in Go, a powerful and compiled language.

RSQL implements a subset of the TSQL dialect (only the basic SQL commands).

RSQL is full Unicode.

RSQL is multiuser.

RSQL is ACID compliant.

Transactions are supported.

Locking is applied per table.

If an error occurs during a statement, the transaction is rolled back and the batch terminates.

Journal files are used to ensure that all or no modifications are processed, if a power shortage or system crash occurs in the middle of a transaction or statement.

RSQL always aborts the batch on error, which is the same behaviour as MS SQL Server having the XACT_ABORT option set to ON (see the topic Differences).

Not Implemented Features

The following features are not implemented in the current version of RSQL.

For the moment, the optimizer does not reorder the tables in the FROM clause. Tables are joined in the order they are listed in the FROM clause. This means you must try different table orders and measure the execution time of the query, to find the fastest.

For the moment, only a C# driver is provided, allowing C# code to easily communicate with RSQL.

The following features will be implemented in future versions of RSQL, by order of priority:

Rationale

Microsoft SQL Server is a very complex and powerful software, with a steep learning curve, but can handle heavy workload.
Unfortunately, the licensing cost of Microsoft SQL Server may become very expensive on powerful machines with many cores, and is often a multiple of the price of the hardware.

RSQL is simpler. It does not implement all MS SQL Server features, but only the basic functionalities.
A lot of applications don’t use all the bells and whistles of the original product, and RSQL may be good enough for them.

In this case, there are many incentives to use RSQL instead of the original Microsoft product:

Being highly compatible, RSQL is the perfect substitution product for MS SQL Server, and is suitable for a lot of basic applications.
RSQL is published under a free license, and can be used easily at no cost and no risk.

Target Audience

RSQL is a product that will be used primarily by companies that have chosen Microsoft as their main IT platform.

The main target users are the C# developers working in the Microsoft environment.

Developers in this environment usually write applications in the very popular Microsoft language C#. They are also already familiar with MS SQL Server for data storage, as it is the natural choice in the Microsoft ecosystem.

These companies pay several thousands or tens of thousands dollars per year for MS SQL Server license costs.

For these small and medium-size companies, this is a large amount of money. To cut expenses, they have developed two strategies:

The downside is that applications are less responsive and all the administration is more complex, due to the slow hardware.

RSQL is a direct drop-in replacement for the original product, and is completely free.

C# developers are able to use RSQL immediately, without the need to learn new skills.

RSQL, a simple alternative to Microsoft SQL Server