ActiveJ
| Developer(s) | ActiveJ LLC |
|---|---|
| Initial release | June 13, 2020 |
| Stable release | v3.0
/ November 12, 2020 |
| Repository | ActiveJ Repository |
| Written in | Java |
| Engine | |
| Operating system | Cross-platform |
| Website | https://activej.io |
Search ActiveJ on Amazon.
ActiveJ is an open-source Java platform built from the ground up for developing modern web, cloud, high-load, and microservices solutions.:[1][2][3][4][5]. Released under Apache license 2.0, ActiveJ features a full stack of technologies with an asynchronous programming model.
All ActiveJ components are published on Maven Central Repository[6] and also on ActiveJ GitHub repository[7]. ActiveJ is listed in awesome-java[8], a curated list of awesome Java frameworks, libraries and software.
History
ActiveJ v1.0 was released on Jun 13, 2020. It is an improved and restructured version of the DataKernel[9] framework. After DataKernel v3.0 release[10], the framework was significantly reorganized to improve usability and performance. Some of the platform components were separated, so that they can be used as stand-alone libraries.
Structure
ActiveJ consists of several loosely coupled components that complement each other. Conceptually they can be grouped as following:
Core components
- ActiveInject. Powerful and lightweight dependency injection library without third-party dependencies[11][12][13]. Can be used independently of ActiveJ platform.
- Async I/O core: Promise[14], Eventloop[15], Net[16].
- Fast and asynchronous data stream processing: Datastream[17], CSP[18].
- High-performance [19] HTTP component, features asynchronous HTTP clients and servers [20]. Can be used independently of ActiveJ.
- Bootstrapping and lifecycle management utils: Launcher[21], Service Graph[22], JMX, Triggers.
Bytecode manipulation tools
These components can be used as stand-alone libraries.
- ActiveSerializer[23] . World’s fastest JVM-based Serializer[24] according to the benchmarks conducted Nov 11, 2019 (as a part of DataKernel framework) using JVM-serializers test[25].
- ActiveCodegen. Dynamic runtime code generation without reflection[26].
- ActiveSpecializer[27]. Optimizes application code for JVM in runtime and speeds it up by up to 7 times[28].
Cluster technologies
- ActiveRPC. A high-performance RPC implementation with binary protocol for distributed applications and microservices[29].
- ActiveFS[30]. Lightweight library for building scalable distributed file storage[31].
- ActiveCRDT (beta). State-based conflict-free replicated data type implementation[32]
Features
The core ActiveJ principles are:
- Explicit design
- Flexibility and extensibility
- No excessive abstractions
- Minimal third-party dependencies
- Loosely coupled components
- Business logic over framework specifications[4]
Examples
Here is a basic example of ActiveJ web application. It utilizes Launcher and HTTP components, along with ActiveInject library[33]
public final class HttpHelloWorldExample extends HttpServerLauncher {
@Provides
AsyncServlet servlet() {
return request -> HttpResponse.ok200().withPlainText("Hello World");
}
public static void main(String[] args) throws Exception {
Launcher launcher = new HttpHelloWorldExample();
launcher.launch(args);
}
}
The result of this application launching will be the “Hello World” message on localhost:8080:
Notable use case
ActiveJ and its predecessor DataKernel are widely used at AdKernel LLC[34], a technical solution provider for digital advertising.
References
- ↑ "ActiveJ official website". activej.io.
- ↑ "ActiveJ: A New, Alternative Java Platform". www.javacodegeeks.com.
- ↑ "ActiveJ: New platform for Java developers presented". jaxenter.de.
- ↑ 4.0 4.1 "ActiveJ. New Java platform". entwickler.de.
- ↑ "ActiveJ Overview. New Full-stack Java Framework". jaxenter.com.
- ↑ "ActiveJ Maven repository". mvnrepository.com.
- ↑ "ActiveJ GitHub repository". github.com.
- ↑ "Awesome-Java repository". github.com.
- ↑ "DataKernel official website". datakernel.io.
- ↑ "DataKernel v3.0 release". jaxenter.de.
- ↑ "ActiveInject official website". inject.activej.io.
- ↑ "ActiveInject. Fast and Lightweight Dependency Injection Library". dzone.com.
- ↑ "ActiveInject Overview". dev.to.
- ↑ "ActiveJ. Promise". activej.io.
- ↑ "ActiveJ. Eventloop". activej.io.
- ↑ "ActiveJ. Net". activej.io.
- ↑ "ActiveJ. Datastream module benchmarks". activej.io.
- ↑ "ActiveJ. CSP module benchmarks". activej.io.
- ↑ "ActiveJ. HTTP module benchmarks". activej.io.
- ↑ "Creating High-Performance Web Applications with ActiveJ". www.javacodegeeks.com.
- ↑ "ActiveJ. Launcher". activej.io.
- ↑ "ActiveJ. Service Graph". activej.io.
- ↑ "ActiveSerializer. Ultra-fast Java serialization library". dev.to.
- ↑ "ActiveSerializer official website". serializer.activej.io.
- ↑ "eishay/jvm-serializers". August 24, 2020 – via GitHub.
- ↑ "ActiveCodegen official website". codegen.activej.io.
- ↑ "ActiveSpecializer official website". specializer.activej.io.
- ↑ "Transforming AST with ActiveSpecializer". dev.to.
- ↑ "ActiveRPC official website". rpc.activej.io.
- ↑ "ActiveFS official website". fs.activej.io.
- ↑ "Creating a Cluster File Storage With ActiveJ". dzone.com.
- ↑ "ActiveCRDT official website". crdt.activej.io.
- ↑ "ActiveJ Overview. New Full-stack Java Framework". jaxenter.com.
- ↑ "AdKernel. Our technologies". adkernel.com.
External links
- ActiveJ official website - activej.io
This article "ActiveJ" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:ActiveJ. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
