JLine alternative for .NET


I’m planning implementing a console client for an open-source SQL database I’m developing (DeveelDB), that is written purely in .NET.
Although it is true that clients to SQL databases can be developed in different languages and frameworks, I am willing to provide an onld-style console client together with the kernel library of DeveelDB.

The most used library for such purpose, for applications developed in Java, is JLine, which provides many of the features I’m looking for (command tab-completion, command history, cursor buffering, etc.)
A project, similar to what I am willing to do (SQLLine), is also using JLine for such purpose.

In the past I developed myself a library for the matter (DeveelRL), but I admit I’m not satisfied by it and I abandoned the development.
The other solution around for .NET is Miguel de Icaza’s LineEditor (getline.cs: Partying like its 1988), but making a comparison with my own solution, I must say it’s like a subset.

I am now seeking for any suggestion by the community on this matter, before I will proceed with a port (or attempted port) of JLine to .NET



@antonello You can take a look at ReadLine https://github.com/tsolarin/readline. It’s still under active development


I found about it one week ago in fact, and I’ve also starred it. I am experimenting a bit with it, to see if I can use it in the context I want to.
Thank you for your contribution through it.



Thanks great to hear @antonello. I’d love to know what context you’re thinking of using it, the library is still in its early development stages and my intention is to make it useful for a wide range of scenarios. Feel free to open an issue



@tsolarin , like i mentioned in my topic above, I’m developing an open-source (APL 2.0) SQL-99 database system, entirely written in .NET, named DeveelDB.

Historically, but also practically, all the SQL systems provide a command-line client for interacting with the system.

SQL is not a simple language and might contain complex commands, multi-line procedures, etc. that adds complexity to the implementation of the client, since the user would have a terrible experience by not be able to write the code in a fluent way.

In Java world this problem was tackle down by projects like HenPlus or SQLine, which use the GNU ReadLine implementation for Java.
I tried to emulate this, many years ago, by writing my own library (named Deveel ReadLine), but I decided that I didn’t want to focus on that, since the SQL engine itself is a huge project.

Also, to ehnanche the experience I want to provide an auto-complete support for object names (eg. table name, trigger names, schema names, etc.) and possibly also the language elements.
The idea is to come out with a sort of SQL-REPL for .NET, specifically oriented to DeveelDB.

.NET Foundation Website | Blog | Projects | Code of Conduct