Core User Manual

This manual documents the CC core software. The core is a multi-language library and framework used to build advanced applications. It is composed of language-specific collections of interconnected libraries providing an exceptionally powerful development ecosystem.

1. Introduction

Welcome to the core, the software development ecosystem of CC.

The idea of a core is one that is quite common in software design. It implies something that is fundamental - the machine behind the machine, whatever the machine may be.

The core is often the most important part of your application - the one you want to get right. Where things get tricky is when you have many different applications, all which have a core, which you also need to get right.

The natural evolution is to start abstracting away the commonalities between your application core, refactoring them into a new project. As your applications grow, new patterns appear. You keep searching for common patterns and refactoring. This pattern repeats and all is good and dandy.

That is, until your applications start to die. No matter the manner or pace of death, there is a symbiotic link with the core that is broken when your application is no longer useful, or there is another application that takes its place. As a result, the parts of your core that were heavily influenced by the deceased application start to become less useful too. If left unchecked, your core will turn into bloat.

This is not how the CC core is developed. Our core does not inherit from applications and is not dependent on them. We are not building a 'top-down' system. Instead, we build 'bottom-up' from scratch and keep our core insulated (but not completely isolated) from applications.

1.1. On Lisp

1.2. On Rust

2. Overview