Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add in a new future page, which describes some of the libraries which…
… are in planning or development
- Loading branch information
1 parent
0f6223f
commit e187cc3
Showing
1 changed file
with
89 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
--- | ||
layout: rosella | ||
title: Future Libraries | ||
--- | ||
|
||
## Overview | ||
|
||
Rosella is a large collection of libraries. At any given time there will be | ||
some libraries in the collection considered "stable" and "usable", and other | ||
libraries in the collection which are still in the planning or development | ||
stages. | ||
|
||
This webpage is going to list some of the libraries which are in planning | ||
and development stages. As these libraries grow and mature, they will become | ||
stable and will be listed elsewhere in the documentation. | ||
|
||
If *you* are interested in either using or helping to bring them to maturity, | ||
let me know. I'm always interested in new ideas, feedback, and contributions. | ||
|
||
## Development Libraries | ||
|
||
These libraries exist, but are either incomplete, not tested, not documented, | ||
have bad interfaces, suffer from bad or incomplete design, or are otherwise | ||
not mature enough to be considered a stable part of Rosella. | ||
|
||
### Contract | ||
|
||
A library for performing runtime checks and assertions. The Contract library | ||
implements functionality to verify that certain values hold in certain | ||
ranges, that objects implement required interfaces, and that functions are | ||
both being called correctly and returning correct values. At runtime, the | ||
Contract library can be "turned off", and will not perform any costly checks. | ||
|
||
### Decorate | ||
|
||
Based on the Proxy library, the Decorate library provides a mechanism for | ||
creating cheap Decorators. A Decorator is an object which adds new | ||
attributes and methods to an object of an existing class, without violating | ||
encapsulation. | ||
|
||
### Event | ||
|
||
The Event library allows aggressive system decoupling by allowing components | ||
to communicate through events. Events have a subscribe/publish model, where | ||
multiple components can subscribe to be notified of events without knowning | ||
where they were raised, and multiple components are able to publish events | ||
without knowing what (if anything) will be notified. | ||
|
||
### Path | ||
|
||
The Path library allows searching of nested aggregates by using path strings. | ||
The user of an arbitrary attribute can pick values out of it using search | ||
string. | ||
|
||
### Prototype | ||
|
||
The Prototype library implements the Prototype pattern. A Prototype is an | ||
object which is cloned to create new objects, as opposed to a normal system of | ||
object creation where objects are allocated fresh and separate initialized. | ||
The Prototype library allows you to register both a prototype object and an | ||
initializer method for each type, then ask for objects of that type by name. | ||
|
||
### Query | ||
|
||
The Query library implements several higher-order functions for operating on | ||
aggregates. This library implements routines such as map, fold, reduce, count, | ||
and other utility routines for working with aggregates. | ||
|
||
## Planned Libraries | ||
|
||
These are libaries which exist only on paper (or, more likely, only in my | ||
head). These are just rough plans for things I might like to work on, but | ||
haven't actually written any code for. | ||
|
||
### MVC | ||
|
||
This library will provide a number of helper utilities to support systems | ||
using an MVC architecture. | ||
|
||
### String | ||
|
||
The string library will provide a number of utilities for working with | ||
strings in an efficient way. | ||
|
||
### Tokenizer | ||
|
||
The tokenizer library will implement tokenizing behavior. This library will | ||
implement a mechanism for breaking an input sequence into a sequence of | ||
tokens. |