Lightweight asynchronous framework for efficient and scalable web, network and big data solutions
Alternative to conventional frameworks
DataKernel is a full-featured alternative web and big data Java framework. It does not
use Netty, Jetty, Spring/Guice DI, RxJava etc. Instead, it features complete application
stack: Event Loop, Promises, HTTP, DI and others, including decentralized
big-data technologies and map-reduce algorithms.
DataKernel main goal is to free projects from the frameworks which restrict developers with
redundant standards and boilerplates. Get yourself a true freedom to express
yourself as a developer - create projects and concentrate on their business logic instead
of learning framework specifications.
DataKernel consists of stack of loosely coupled components which perfectly complement
and empower each other. It’s much more than the sum of the parts.
Building blocks of the framework and everything you need to create web applications: Node.js-inspired Promises and Eventloop, fast
serializers, bytecode generators, HTTP and TCP servers, integration with UIKernel JS front-end
Components for decentralized cloud solutions of different complexity: from small private file storage
to high-loaded OLAP Cube systems. Also includes Operational Transformations, CRDT and RPC implementations.
Technologies for ultimately scalable, decentralized, yet practical and
high-performance cloud solutions with implementation of data
authenticity and encryption. BitTorrent and Blockchain alternatives.
Why choose DataKernel:
DataKernel is legacy-free. Build application-specific embedded databases and high-performance
HTTP/RPC servers using high-level abstractions, LSM-Tree, Operational Transformations,
CRDT, Go-inspired CSP and other modern algorithms and technologies.
There are no under-the-hood magic, endless XML configurations and dependency hell of
third-party components glued together via layers of
abstractions. DataKernel gives a full control over your applications.
Born to be async
DataKernel allows you to create async web applications in a Node.js manner while preserving all of the Java
advantages. We also use Node.js-inspired features, such as single-threaded async Promises and
pool of event loops as
the building blocks of our framework.
To achieve the lowest GC footprint possible, we’ve designed thoroughly optimized core modules -
improved Java ByteBuffer ByteBuf,
stateless single-threaded Promises and
also one of the fastest
Serializers available nowadays.
DataKernel has everything you need to create applications of different scales - from
standalone high-performance async network solutions and HTTP web applications
up to big-data cloud solutions and decentralized internet-wide applications.
DataKernel has simple yet powerful set of abstractions with clean OOP design favoring Java 8+
functional programming style. It also radically downplays Dependency Injection role, giving
way to your business logic instead.
Comparison with other popular frameworks
Ruby on Rails
Suitable for enterprise-level solutions
Low entry barrier level
Explicit specifications instead of implicit conventions
Legacy-free, no third-party dependencies
IDE friendly, statically-typed high-performance language
Create your applications simpler than ever before
A set of predefined launchers and classes for typical use cases allows you to develop apps
extremely fast. Create an async HTTP server in less than 15 lines of code with no
additional configuration files.
Dependency Injection: Redefined
DataKernel has an extremely lightweight DI with ground-breaking design principles. Besides
lightning-fast launch, it is even more powerful: support of nested scopes, singletons,
object factories, modules and plugins which allow to transform graph of dependencies at
startup time, abstracting out all reflection. These plugins extensively use Java 8+
functional-style programming: for binding definitions, user-defined binding transformations
and binding generators. The entire runtime code of Injector consists of ~50 lines of code,
with all binding definitions performed in startup time.
DataKernel DI has no dependencies on its own, so it can be used as a standalone component.
DataKernel is a production-ready framework which constantly evolves and gets new updates. The
essential DataKernel modules form the basis of diverse high-load applications processing
billions of requests daily: ad-serving solutions, online analytics and web crawlers.
Easy to start
We did our best to make your first use of DataKernel as smooth as possible and created dozens of
tutorials of different
complexity, for both beginners and advanced Java developers.
Try DataKernel right now by passing Getting-Started tutorial.
You can also explore docs to
find out more about DataKernel modules.
It is also worth to note that due to the usage of Node.js-inspired features, DataKernel is a
Join the community
Copyright (C) 2019 SoftIndex LLC. All Rights Reserved