Java components for building applications with asynchronous I/O.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
aggregation Introduce 'datakernel-csp' Nov 16, 2018
async Merge branch '192-clean-up-code' Nov 15, 2018
boot Move globalfs launchers to globalfs project, more test hacking Nov 19, 2018
bytebuf Merge fix from 2.5.12 branch Nov 19, 2018
codegen Add messages to checkXXX methods Nov 15, 2018
common Integrate StructuredCodecs with JSON parsers Nov 18, 2018
csp Merge fix from 2.5.12 branch Nov 19, 2018
cube Introduce 'datakernel-csp' Nov 16, 2018
datagraph Introduce 'datakernel-csp' Nov 16, 2018
datastreams Fix StreamConsumer#ofChannelConsumer bug and naming Nov 20, 2018
eventloop Merge branch '192-clean-up-code' Nov 15, 2018
global Remove TypeAdapters from global-ot, use StructuredCodecs instead Nov 19, 2018
http Move globalfs launchers to globalfs project, more test hacking Nov 19, 2018
json Remove TypeAdapters from global-ot, use StructuredCodecs instead Nov 19, 2018
launchers Move globalfs launchers to globalfs project, more test hacking Nov 19, 2018
net Move globalfs launchers to globalfs project, more test hacking Nov 19, 2018
ot-mysql Introduce 'ot-mysql' module, add table initialization to OTRepository… Nov 16, 2018
ot Introduce 'ot-mysql' module, add table initialization to OTRepository… Nov 16, 2018
remotefs Move globalfs launchers to globalfs project, more test hacking Nov 19, 2018
rpc Move globalfs launchers to globalfs project, more test hacking Nov 19, 2018
serializer Merge branch '192-clean-up-code' Nov 15, 2018
test Move globalfs launchers to globalfs project, more test hacking Nov 19, 2018
uikernel Merge fix from 2.5.12 branch Nov 19, 2018
.editorconfig Add .editorconfig Jul 20, 2018
.gitignore Rework Launcher and its modules Mar 1, 2018
LICENSE DataKernel Framework: initial commit Jul 3, 2015
README.md Update README.md Feb 14, 2017
pom.xml Introduce 'datakernel-csp' Nov 16, 2018

README.md

Introduction

DataKernel is a full-stack application framework for Java. It contains components for building applications of different scales, from single-node HTTP-server to large distributed systems. DataKernel was inspired by Node.js, so it's asynchronous, event-driven, lightweight and very easy to use. Moreover, it is completely free of legacy stuff, such as XML, Java EE, etc.

Due to the usage of modern asynchronous I/O, DataKernel is extremely fast, which is proven by benchmarks.

The essential components of DataKernel form the basis of our ad-serving infrastructure at AdKernel, running in production environments and processing billions of requests. Specifically, DataKernel is the foundation for systems that provide real-time analytics for ad publishers and advertisers, user data processing tools that we use for ad targeting, and also web crawlers that perform content indexing on a large scale.

Foundation components

  • ByteBuf - Memory-efficient, recyclable byte buffers.
  • Eventloop - Efficient non-blocking network and file I/O, for building Node.js-like client/server applications with high performance requirements.

Core components

  • HTTP - High-performance asynchronous HTTP client and server. Benchmark
  • Async Streams - Composable asynchronous/reactive streams with powerful data processing capabilities. Benchmark
  • Serializer - Extremely fast and space-efficient serializers, crafted using bytecode engineering. Benchmark
  • Codegen - Expression-based fluent API on top of ObjectWeb ASM for runtime generation of POJOs, mappers and reducers, etc.

Cluster components

  • RPC - High-performance and fault-tolerant remote procedure call module for building distributed applications.
  • Aggregation - Unique database with the possibility to define custom aggregate functions.
  • OLAP Cube - Specialized OLAP database for multidimensional data analytics.
  • RemoteFS - Basis for building efficient, scalable remote file servers.

Integration components

  • Boot - An intelligent way of booting complex applications and services according to their dependencies.
  • UIKernel - Integration with UIKernel.io JS frontend library: JSON serializers, grid model, basic servlets.