minimalist SQL database
 
Manual page for Overview(TDH)

shsql home page
specs and limitations page

shsql overview

Have you ever wished that there was a reasonably full-featured, efficient open source SQL database for unix/linux that could be downloaded and installed by a non-privileged user in 5 minutes, and that would include everything you need to let you begin building real web-based database applications in 10 minutes? An SQL database that could be embedded directly into applications requiring no persistent server process, with a small code size and memory footprint? An SQL database that used plain ascii whitespace-delimited data files which you could modify in a text editor if you wanted to? An easy-to-administer SQL database that didn't impose its own layer of user logins and permissions?

If so, you may be interested in shsql...

shsql is an open source database system for unix/linux that stores data in plain whitespace-delimited ascii data files, and uses a variant of the SQL language. When you build shsql, the results include a command line SQL tool and a 'C' language API called libshsql which can be linked and delivered with your applications. shsql is distributed as part of a package called quisp (quick server pages) which allows rapid development of web-based database applications, among other things.

With shsql all database functionality is embedded in the application; there is no server process, and no need to "connect" or "log in" to a database server. This allows complete turnkey applications to be delivered to sites without any dependence on a persistent database such as Oracle or MySQL.

shsql supports several types of indexes, table and record locking, automatic sequence/serial number allocation, and search engine features. shsql extends the traditional SQL model by allowing data files and streams to be created by other programs, and can perform SELECT access on files anywhere in the file system.

In some ways shsql takes a minimalist approach: there are no data types, no provision for arithmetic or string/date/time manipulation in SELECTs, no logins, passwords, or user access permissions (much of this is typically handled by middleware anyway these days). shsql relies on unix file and directory permissions settings for access control. Also, there are no triggers, stored procedures, commit/rollback, memo field or BLOB support.

shsql is seen as a viable option for rapid prototyping situations, demos, exploratory work, one-developer projects, etc. where its simplicity and flexibility will allow a lot of app development to be done quickly, and where full-blown packages like MySQL or Oracle aren't already available, or are unacceptable for whatever reason.

Enjoy!


Copyright Steve Grubb  


Markup created by unroff 1.0,    March 16, 2004.