1 | lemonade
|
2 | =========
|
3 | [![Build Status](https://travis-ci.org/runlevel3/lemonade.png)](https://travis-ci.org/runlevel3/lemonade)
|
4 | [![NPM version](https://badge.fury.io/js/lemonade.png)](http://badge.fury.io/js/lemonade)
|
5 |
|
6 |
|
7 | Jump to [documentation](https://github.com/runlevel3/lemonade/wiki/)
|
8 |
|
9 | ## api framework
|
10 | Lemonade is a nodejs framework designed to be used for backend apis. Emphasis is put on software adaptors, logging and communication via a serialized (jsoned) objects.
|
11 |
|
12 | ## abstract wrappers
|
13 | Access to different software is essential when building a backend api. Lemonade tries to provide access to multiple software using abstract wrappers. No hassle about choosing an adaptor or refactoring parts of your application once an adaptor changes.
|
14 |
|
15 | Adaptors built into lemonade : [mysql](https://github.com/runlevel3/lemonade/wiki/mysql), [cassandra](https://github.com/runlevel3/lemonade/wiki/cassandra), [rabbitmq](https://github.com/runlevel3/lemonade/wiki/rabbitmq), [solr](https://github.com/runlevel3/lemonade/wiki/solr)
|
16 |
|
17 | Custom adaptors can be easily built or existing ones overloaded : [creating and overloading links](https://github.com/runlevel3/lemonade/wiki/links)
|
18 |
|
19 | ## built in daemons
|
20 | Lemonade comes with built in [http daemon](https://github.com/runlevel3/lemonade/wiki/httpd) and [spinner daemon](https://github.com/runlevel3/lemonade/wiki/spinner) (crontab).
|
21 |
|
22 | ## mvc structure
|
23 | Application logic is structured on the mvc model. Http requests get routed to [controllers](https://github.com/runlevel3/lemonade/wiki/application-structure) and crontabs spawn [intervals](https://github.com/runlevel3/lemonade/wiki/application-structure). [Models](https://github.com/runlevel3/lemonade/wiki/application-structure) and [views](https://github.com/runlevel3/lemonade/wiki/application-structure) are available as well.
|
24 |
|
25 | ## graceful shutdown and restart
|
26 | All daemons and adaptors are built with unload methods, so a graceful application shutdown and restart can be initiated at any time (sigterms can be used).
|
27 |
|
28 | ## source file supervising
|
29 | Lemonade can be started using the --watch-changes option. This will launch a watcher on the application directory which will gracefully restart the app once the sources change.
|
30 |
|
31 | ## standardized object structure and inclusion
|
32 | All objects are overloaded when created with references to the main object (kernel) and to the instance object (if present). Objects can be created as singletons.
|
33 |
|
34 | ## template engines
|
35 | Depending on the extension a different template engine will be used. See [more about templates](https://github.com/runlevel3/lemonade/wiki/templates)
|
36 |
|
37 | ## documentation
|
38 | [documentation](https://github.com/runlevel3/lemonade/wiki/)
|
39 |
|
40 | ## how to contribute
|
41 | Use any of github's tools for contributing or contact us at contact@lemonadejs.com for any thoughts, suggestions, ideas or criticism (we welcome any input!).
|
42 |
|
43 | ## license (MIT)
|
44 |
|
45 |
|
46 | Copyright (C) 2012-2013 http://lemonadejs.com https://github.com/runlevel3
|
47 |
|
48 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
49 | associated documentation files (the "Software"), to deal in the Software without restriction,
|
50 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
51 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
52 | subject to the following conditions:
|
53 |
|
54 | The above copyright notice and this permission notice shall be included in all copies or substantial
|
55 | portions of the Software.
|
56 |
|
57 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
58 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
59 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
60 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
61 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
62 |
|