Skip to content
Newer
Older
100644 170 lines (125 sloc) 6.46 KB
1dbcc31 @Whiteknight index.html -> index.md
authored
1 ---
2 layout: rosella
1b968f4 @Whiteknight list libraries in the page header
authored
3 title: Rosella Library
1dbcc31 @Whiteknight index.html -> index.md
authored
4 ---
5
c927cd9 @Whiteknight Remove information about development libraries from the index page. A…
authored
6 Rosella is a library of patterns and practices for use with the Parrot Virtual
7 Machine. The Rosella project is actually a collection of several individual
8 libraries, each of which implements a single pattern, best practice or
9 toolset. Rosella is intended to be used piece-wise. Use only the parts you
10 want and ignore the parts you do not want. Rosella libraries tend not to be
11 interdependent, although some of the more advanced libraries rely on some of
12 the more basic ones.
13
14 ## Project Goals
15
16 The Rosella project has a number of driving goals which influence both the
17 types of libraries which are provided and the way those libraries are
18 implemented:
19
20 * **Portability**. Rosella is pure-parrot, and has no components written in C.
21 It has no runtime dependencies besides a minimally-configured Parrot.
22 Rosella can go anywhere Parrot can go.
23 * **Complete language agnosticism**. Rosella intends to be usable from
24 programs written in any language running on Parrot.
25 * **Encapsulate low-level details**. Parrot provides lots of tools, though
26 many are too low-level. Rosella attempts to encapsulate some ugly details
27 behind nice, friendly, and usable interfaces.
28 * **Extensibility**. Rosella aims to provide good defaults, but also to allow
29 aggressive modifications, configurations, and subclassing behaviors to those
30 who need something different.
31 * **Provide well-known tools**. Rosella isn't an experimental research
32 project. It aims to provide Parrot implementations of well-known patterns,
33 practices, architectures, and tools. Rosella borrows good ideas from
34 well-known and high-quality sources.
35 * **Focus on the user**. Rosella is interested in making things easier for
36 other coders. It wants to provide things that other coders will actually use
37 and appreciate. Rosella is a set of tools for coders, not for end users.
31e3323 @Whiteknight Add note about future-proofing being a design goal of Rosella
authored
38 * **Future Proof**. Rosella provides interfaces, sometimes for very simple
39 features or algorithms. In the future when Parrot changes or adds new
40 features, Rosella will insulate the user from them. When Parrot adds proper
41 threading, Rosella will be updated to provide thread-safety where needed.
1dbcc31 @Whiteknight index.html -> index.md
authored
42
43 ## Rosella Components
44
45 ### Rosella Stable Libraries
46
47 Here is a list of Rosella's libraries which are currently
48 considered to be "stable" enough for general use:
49
889d350 @Whiteknight add links to libraries on the index page
authored
50 #### [Core](/Rosella/libraries/core.html)
1dbcc31 @Whiteknight index.html -> index.md
authored
51
52 Rosella's Core library provides a handful of routines used by
53 the other Rosella libraries. This library provides basic behavior
54 for working with an assortment of "type" meta-objects, and for
55 implementing a standard system of object constructor behavior.
56
889d350 @Whiteknight add links to libraries on the index page
authored
57 #### [Action](/Rosella/libraries/action.html)
1dbcc31 @Whiteknight index.html -> index.md
authored
58
59 The Action library implements the Command pattern. Sequences of
60 instructions can be bundled together into an Action object, and
61 can be invoked later.
62
889d350 @Whiteknight add links to libraries on the index page
authored
63 #### [Container](/Rosella/libraries/container.html)
1dbcc31 @Whiteknight index.html -> index.md
authored
64
65 The Container library implements a Dependency Injection, Inversion
66 of Control container type which can be used to help decouple
67 modules in a program. The Container utilizes the Action library
68 to setup constructor injection and method injection behaviors
69 on registered types.
70
889d350 @Whiteknight add links to libraries on the index page
authored
71 #### [Test](/Rosella/libraries/test.html)
1dbcc31 @Whiteknight index.html -> index.md
authored
72
73 Inspired by testing libraries such as xUnit and Test::More,
74 The Rosella Test library provides the tools and utilities to
75 quickly write unit tests for your software. Rosella's own test
76 suite is written using this library.
77
91b7e4f @Whiteknight tap_harness -> harness
authored
78 #### [Harness](/Rosella/libraries/harness.html)
1dbcc31 @Whiteknight index.html -> index.md
authored
79
80 A companion to the Test library, The TAP Harness library
81 implements the logic necessary to quickly construct a TAP harness
82 for executing unit tests and reporting the results. Rosella's own
83 test harness is written using this library.
84
889d350 @Whiteknight add links to libraries on the index page
authored
85 #### [Proxy](/Rosella/libraries/proxy.html)
1dbcc31 @Whiteknight index.html -> index.md
authored
86
87 The Proxy library provides the tools necessary to create a wide
88 array of proxy objects.
89
889d350 @Whiteknight add links to libraries on the index page
authored
90 #### [Mock Object](/Rosella/libraries/mockobject.html)
1dbcc31 @Whiteknight index.html -> index.md
authored
91
92 The MockObject library uses the Rosella Proxy library to implement
93 full-featured mock objects for use in testing with the Test
94 library. Several tests in the Rosella test suite are implemented
95 using this library.
96
97 ### Rosella Development Libraries
98
c927cd9 @Whiteknight Remove information about development libraries from the index page. A…
authored
99 Rosella has a number of other libraries in planning and development. These
100 libraries are not yet considered mature enough to include as part of a
101 regular release. For the complete list with descriptions and ideas, see the
102 [future libraries page](/Rosella/libraries/future.html).
1dbcc31 @Whiteknight index.html -> index.md
authored
103
104 ## Install
105
c927cd9 @Whiteknight Remove information about development libraries from the index page. A…
authored
106 ### Build Dependencies
107
108 * [Parrot](http://github.com/parrot/parrot) : Rosella runs on top of the
109 Parrot VM. You cannot build, run, or use Rosella in any way without Parrot.
110 * [Winxed](http://code.google.com/p/winxed) : Rosella is written in the
111 Winxed language. You need Winxed to build Rosella, but you do not need
112 Winxed to run it. Winxed has no runtime libraries of its own.
1dbcc31 @Whiteknight index.html -> index.md
authored
113
114 ### Installing With Plumage
115
1b968f4 @Whiteknight list libraries in the page header
authored
116 [Plumage](http://github.com/parrot/plumage) is a
1dbcc31 @Whiteknight index.html -> index.md
authored
117 package-management program for Parrot. If you have Plumage
118 and Winxed already installed getting Rosella is a breeze:
119
120 $ plumage install rosella</pre>
121
122 That's all there is to it! You now have Rosella. If you don't have
123 Plumage on your system you'll need to follow the rest of the
124 instructions below.
125
126 ### Get the Source
127
128 You can download this project in either
1b968f4 @Whiteknight list libraries in the page header
authored
129 [zip](http://github.com/Whiteknight/Rosella/zipball/master) or
130 [tar](http://github.com/Whiteknight/Rosella/tarball/master) formats.
1dbcc31 @Whiteknight index.html -> index.md
authored
131
1b968f4 @Whiteknight list libraries in the page header
authored
132 You can also clone the project with [Git](http://git-scm.com)
1dbcc31 @Whiteknight index.html -> index.md
authored
133 by running:
134
135 $ git clone git://github.com/Whiteknight/Rosella
136
137 ### Installing Manually
138
139 Once you have a copy of the source and all the necessary
140 dependencies you can build, test and install Rosella:
141
142 $ winxed setup.winxed build
143 $ winxed setup.winxed test
144 $ winxed setup.wixned install
145
146 ## Project Info
147
148 ### License
149
1b968f4 @Whiteknight list libraries in the page header
authored
150 Rosella is released under the terms of the Artistic 2.0 license.
151 See the LICENSE file in the repo for more details.
1dbcc31 @Whiteknight index.html -> index.md
authored
152
153 ### Authors
154
1b968f4 @Whiteknight list libraries in the page header
authored
155 Rosella is written by [Whiteknight](http://whiteknight.github.com)
156 (wknight8111@gmail.com). See the CREDITS file in the repo for more details
157 about contributors and the people and projects which have inspired Rosella.
1dbcc31 @Whiteknight index.html -> index.md
authored
158
159 <div class="footer">
160 get the source code on GitHub :
161 <a href="http://github.com/Whiteknight/Rosella">Whiteknight/Rosella</a>
162 <br/>
163 The image of the Crimson Rosella at the top of the page is from
164 <a href="http://commons.wikimedia.org/wiki/File:Crimson_Rosella,_Culburra_Beech.jpg">
165 D. Gordon E. Robertson on Wikipedia
166 </a>. The image is released under the terms of the CC-By-SA-3.0 and/or
167 the GFDL licenses.
168 </div>
169
Something went wrong with that request. Please try again.