-
Notifications
You must be signed in to change notification settings - Fork 12
Home
Development of mangoo I/O started in mid 2015 out of the interest on how difficult it would be to create an intuitive, developer friendly, full stack Java web framework from scratch.
After I had a fresh new breeze of Java development for the web with the Play Framework (Version 1), contributions to the Ninja Framework and having seen a lot of cumbersome "Enterprise" applications, I thought it was time for yet another full stack Java web framework.
For me, developing mangoo I/O will always be about having a developer friendly, fluent and easy to understand web framework with a small learning curve for the Java ecosystem. Along with pure Java development, this will be the untouchable base line.
At its core, mangoo I/O is a classic MVC-Framework. The foundation of mangoo I/O is the high performant Undertow web server from JBoss. On top of that, standard, production ready Java libraries are used - no reinventing of the wheel, no bytecode manipulation, no magic whatsoever.
The main reason for using Undertow was that it is based on non-blocking I/O in the form of XNIO. And although Undertow does support the servlet API, one is not bound to use it in any way, giving a Java developer the opportunity to work fully stateless and being independent to the servlet API.
Here are some key features of mangoo I/O in a nutshell:
- Intuitive convention-over-configuration
- Highly scalable using a share-nothing stateless architecture
- Hot-Compiling development mode for high productivity
- Easy to use template engine
- Support for Web Sockets
- Support for Server-Sent Events
- Simple and self-explaining form handling and validation
- Plain scheduling for recurring tasks
- Fast and easy handling of JSON in- and output
- Strong cryptography and enforced security
- Build-in asset minification in development mode
- Flexible testing tools
- Build-in authentication utilities with Two-Factor-Authentication
- Support for OAuth with Twitter, Google and Facebook
- Simple Deployment and CI-Integration
- Cloud ready environment setup
- Preprocessor for LESS and SASS
- i18N Internationalization
- Any many more…
One main focus of mangoo I/O was to have a very good and well documented code base. Therefore, mangoo I/O is constantly checked against SonarQube with a rule set of more than 1100 checks. Additionally each build is checked against Loader.io to ensure, that code changes do not decrease the framework performance.
Here are some used libraries and their purpose in mangoo I/O.
- Maven – Dependency management, built-system, packaging
- Undertow – Web Server
- Google Guice – Dependency injection
- Log4j 2 – Logging
- Ehcache – Cacheing
- Freemarker – Template engine
- Quartz Scheduler – Scheduling
- Boon JSON, JSONPath – Handling JSON
- JUnit, DocTester, Mockito, FluentLenium – Testing
- JBcrypt – Strong hashing
- Bouncy Castle – Strong cryptography
- And many more …
- 1.203 Sonar rules
- 10K Lines of code
- 2.019 Commits
- 519 Unit tests
mangoo I/O 2015-2024 | [email protected]
- Getting started
- Configuration
- Routing
- Bootstrap
- Controllers
- Dependency injection
- Templating
- Working with JSON
- Persistence
- CORS
- Authentication
- Authorization
- Scheduler
- Async
- Filters
- Forms
- Session
- Flash
- Internationalization
- Caching
- Emails
- Asset management
- Logging
- Debugging
- Testing
- Administration
- Debian init.d script
- Extensions