1 | lemonade
|
2 | =========
|
3 | [![Build Status](https://travis-ci.org/runlevel3/lemonade.png)](https://travis-ci.org/runlevel3/lemonade)
|
4 | [![Dependency Status](https://gemnasium.com/runlevel3/lemonade.png)](https://gemnasium.com/runlevel3/lemonade)
|
5 |
|
6 | Jump to [documentation](https://github.com/runlevel3/lemonade/wiki/)
|
7 |
|
8 | ## api framework
|
9 | 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.
|
10 |
|
11 | ## abstract wrappers
|
12 | 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.
|
13 |
|
14 | 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)
|
15 |
|
16 | Custom adaptors can be easily built or existing ones overloaded : [creating and overloading links](https://github.com/runlevel3/lemonade/wiki/links)
|
17 |
|
18 | ## built in daemons
|
19 | 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).
|
20 |
|
21 | ## simple mvc structure
|
22 | Application logic is structured on the mvc model. [Controllers](https://github.com/runlevel3/lemonade/wiki/mvc#controllers) should handle input data and [models](https://github.com/runlevel3/lemonade/wiki/mvc#models) will be used to interact with the internal adaptors.
|
23 |
|
24 | ## graceful shutdown and restart
|
25 | 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) : [shutdown](https://github.com/runlevel3/lemonade/wiki/shutdown)
|
26 |
|
27 | ## source file supervising
|
28 | 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.
|
29 |
|
30 | ## standardized object structure and inclusion
|
31 | 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.
|
32 |
|
33 | ## documentation
|
34 | * [process flow](https://github.com/runlevel3/lemonade/wiki/flow)
|
35 | * [getting started](https://github.com/runlevel3/lemonade/wiki/getting-started)
|
36 | * [including files, creating objects](https://github.com/runlevel3/lemonade/wiki/including-files)
|
37 | * [application mvc](https://github.com/runlevel3/lemonade/wiki/mvc)
|
38 | * [links](https://github.com/runlevel3/lemonade/wiki/links)
|
39 | * [mysql](https://github.com/runlevel3/lemonade/wiki/mysql)
|
40 | * [solr](https://github.com/runlevel3/lemonade/wiki/solr)
|
41 | * [cassandra](https://github.com/runlevel3/lemonade/wiki/cassandra)
|
42 | * [rabbitmq](https://github.com/runlevel3/lemonade/wiki/rabbitmq)
|
43 | * daemons
|
44 | * [httpd](https://github.com/runlevel3/lemonade/wiki/httpd)
|
45 | * [spinner](https://github.com/runlevel3/lemonade/wiki/spinner)
|
46 | * [kernel](https://github.com/runlevel3/lemonade/wiki/kernel)
|
47 |
|
48 |
|