Restructure Codebase

VersionTwo Feature Requirement

Goal

Re-organize the code base to make it more accessible and extensible.

Proposed Repository

This is the proposed layout structure for the repository, following the pattern of <category>/<language>/<project>. Below <project> is the usual subversion directories: trunk, branches, tags.

<category> - specifies the general area of the code: core, client or server <language> - groups project by common language <project> - an implementation of a category within a language

  • core - core library with minimal external depdendency. Restricted to in-memory programmatic interfaces
    • java
    • CSharp
    • ruby
    • python
  • server - extensions to core library to enable inter-process communication (web services, etc.)
    • java
      • REST
      • Proxy
      • CSharp
  • client - extensions to core or server libraries which present an interface to a user