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.
Current version: 2.5.8-SNAPSHOT
- 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.
- HTTP High-performance asynchronous HTTP client and server. Benchmark
- DataStreams Composable asynchronous/reactive streams with powerful data processing capabilities. Benchmark
- Codegen Expression-based fluent API on top of ObjectWeb ASM for runtime generation of POJOs, mappers and reducers, etc.
- Serializer Extremely fast and space-efficient serializers, crafted using bytecode engineering by Codegen module. Benchmark
- RPC High-performance and fault-tolerant remote procedure call module for building distributed applications.
- Aggregation Unique database with the possibility to define custom aggregation functions.
- OLAP Cube Specialized OLAP database for multidimensional data analytics.
- RemoteFS Basis for building efficient, scalable remote file servers.
- 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.