https://github.com/mebohq/mebo
:sparkles:A framework focused in providing a unified interface across multiple domains:sparkles:
https://github.com/mebohq/mebo
cli command-line console docopt expressjs nodejs passport rest rest-api restful
Last synced: about 1 year ago
JSON representation
:sparkles:A framework focused in providing a unified interface across multiple domains:sparkles:
- Host: GitHub
- URL: https://github.com/mebohq/mebo
- Owner: meboHQ
- License: mit
- Created: 2017-04-17T09:34:48.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-05-28T23:39:51.000Z (about 4 years ago)
- Last Synced: 2025-04-24T05:11:27.572Z (about 1 year ago)
- Topics: cli, command-line, console, docopt, expressjs, nodejs, passport, rest, rest-api, restful
- Language: JavaScript
- Homepage: https://mebohq.github.io
- Size: 1.82 MB
- Stars: 17
- Watchers: 3
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

[](https://gitter.im/meboHQ)
[](https://travis-ci.org/meboHQ/mebo)
[](https://snyk.io/test/github/meboHQ/mebo)
[](https://codecov.io/github/meboHQ/mebo?branch=master)
[](https://mebohq.github.io/)
## What is Mebo ?
[](https://github.com/meboHQ/mebo/issues)
Mebo is an experimental framework focused in providing a unified interface across multiple domains.
The idea behing mebo is to provide a platform where [evaluations](https://mebohq.github.io/docs/class/src/Action.js~Action.html) and
their [requirements](https://mebohq.github.io/docs/class/src/Input.js~Input.html) are defined in a simple matter. The way it is done
lets you to build strict specifications with validations in a fairly
expressive way.
Evaluations in Mebo are exposed by promoting implementations that don't need to be too coupled to a specific
domain instead, most of the boilerplate code needed when [bridging](https://mebohq.github.io/docs/class/src/Handler.js~Handler.html) a domain
(for instance on the web: request & response) to an evaluation is
avoided and automatically handled by mebo ([DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)).
By using mebo you can easily expose your evaluations through the [web](https://mebohq.github.io/docs/class/src/Handlers/Web.js~Web.html) via
REST/middlewares and also without much effort expose them through [command-line](https://mebohq.github.io/docs/class/src/Handlers/Cli.js~Cli.html) (CLI coming handy during development/debugging to interact
with your evaluations quickly).
So, you can use Mebo for building web apps, command-line apps or all together.
## Upcoming integrations
- [GraphQL](https://github.com/meboHQ/mebo/issues/121)
- [gRPC](https://github.com/meboHQ/mebo/issues/122)
- [Socket.io](https://github.com/meboHQ/mebo/issues/5)
## Key features
- **Flexible architeture**. Mebo can be integrated to existing applications. Also, it's designed from ground up to be customizable and extendable
- **Reliable executions**. Mebo enforces validating the data used prior the execution of evaluations by performing a wide range of verifications
- **Agnostic execution platform**. Implementations using Mebo can be executed easily across different domains
- **Integrated caching system**. Mebo provides out-the-box integrated caching system
- **Express integration**. The web support in Mebo is done through express, embracing the most popular web framework for Node.js
- **RESTful support**. Evaluations can be executed through REST automatically
- **CLI support**. By using Mebo your evaluations can be executed through command-line interfaces following docopt specifications.
[
](data/manual/INTRODUCTION.md)
## Documentation
#### [API Documentation](https://mebohq.github.io)
#### Full Examples
- [Hello World](https://github.com/meboHQ/example-hello-world)
- [RESTful using Express and Mongodb](https://github.com/meboHQ/example-restful-using-express-mongodb)
- [Middleware integration](https://github.com/meboHQ/example-middleware)
- [Authentication](https://github.com/meboHQ/example-auth)
- [Uploads](https://github.com/meboHQ/example-uploads)
- [Command-line integration](https://github.com/meboHQ/example-cli)
- [JSON serialized actions](https://github.com/meboHQ/example-json-actions)
## Requirement
[
](https://www.nodejs.org)
Mebo is built using modern specs ES6/ES7, it requires [Node.js](https://www.nodejs.org) version **8** or **greater**
## Install
```
npm install mebo --save
```
## Getting help
Use the GitHub issues for tracking bugs and feature requests. Also, feel free to talk about Mebo at:
- Gitter [meboHQ](https://gitter.im/meboHQ)
## Issues
Mebo development discussions and bug reports are collected on [Issues](https://github.com/meboHQ/mebo/issues)
## Contributing
Contributions are welcome to Mebo. It can be made through many different forms depending on your level of interest:
- Participating in gitter discussions
- Proposing features
- Reporting issues
- Making improvements (adding new features, improving the existing features, adding tests,
adding testutils, clarifying wording and fixing errors)
## Acknowledgements
Mebo was inspired by:
- [Cortex](https://github.com/ImageEngine/cortex)
- [Passport](https://github.com/jaredhanson/passport)
- [Express](https://expressjs.com)
- [Docopt](http://docopt.org)
## Licensing
Mebo is free software; you can redistribute it and/or modify it under the terms of the MIT License