Skip to content
rothrock edited this page Jan 18, 2012 · 10 revisions

Welcome to the Roxanne wiki!

Introduction

Interest in NoSQL-style databases has blossomed in the software development community. This is obvious simply from the many projects now under way such as Dynamo, Voldemort, CouchDB, MongoDB, and Cassandra. These projects attempt to fill in the sparsely populated range of storage and retrieval options that lie between a hierarchical file system at one end to the complex and powerful (but complicated) relational databases on the other end. The Roxanne project makes its own attempt to carve out a small niche within this wide range.

What Features Make Roxanne distinct?

  • It's very small:
carp:Roxanne rothrock$ cat *.c *.h | egrep -v `"^[[:space:]]*$"` | wc -l
    1579
  • It's written entirely in C. It's modular and simply structured. Complex data types are represented by C structs. There are no templates, functors, class hierarchies, namespaces, singletons, generics, decorators, etc. No threads either.
  • The small set of commands implemented in a text-oriented protocol make it easy for the developer to grasp its capabilities.
  • Composite keys provide the primitives for grouping, sorting, and range selection. Invariably people come to want these features.

About The Author

I enjoy programming in C. My understanding of C started during my second attempt at college back in 1995. While at Georgia State, I took an optional series of three C programming classes and earned a small scholarship based on my C programming ability. I also enjoy relational databases and programming in general. I started out my career in computing at the age of 15 selling, supporting, and developing applications for small CP/M-based micros. At the time (1984), that meant writing code in dBASE.

After college, my career path led me into roles in system and database administration. I enjoyed learning how to run large Unix installations, and I really enjoyed learning how to manage Oracle databases. Later, I learned a lot more about MySQL. I've written production code in PL/SQL, PHP, Python, and Perl, but my path was still very much that of a Sysadmin/Systems Engineer/Site Reliability Engineer.

In 2009, I chose reorient my career away from operations and into software development. I rekindled my love of C programming by attending courses in C programming at the UCSC extension. In parallel, I left my system engineering role at Yahoo! to join a software QA team testing Perl and SQL. This open-source project represents the next step in my efforts to reclaim and improve my ability to program in C.

Clone this wiki locally