You can edit almost every page by Creating an account and confirming your email.

ActiveJ

From EverybodyWiki Bios & Wiki






ActiveJ
Developer(s)ActiveJ LLC
Initial releaseJune 13, 2020; 6 years ago (2020-06-13)
Stable release
v3.0 / November 12, 2020; 5 years ago (2020-11-12)
RepositoryActiveJ Repository
Written inJava
Engine
    Operating systemCross-platform
    Websitehttps://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

    1. ↑ "ActiveJ official website". activej.io.
    2. ↑ "ActiveJ: A New, Alternative Java Platform". www.javacodegeeks.com.
    3. ↑ "ActiveJ: New platform for Java developers presented". jaxenter.de.
    4. ↑ 4.0 4.1 "ActiveJ. New Java platform". entwickler.de.
    5. ↑ "ActiveJ Overview. New Full-stack Java Framework". jaxenter.com.
    6. ↑ "ActiveJ Maven repository". mvnrepository.com.
    7. ↑ "ActiveJ GitHub repository". github.com.
    8. ↑ "Awesome-Java repository". github.com.
    9. ↑ "DataKernel official website". datakernel.io.
    10. ↑ "DataKernel v3.0 release". jaxenter.de.
    11. ↑ "ActiveInject official website". inject.activej.io.
    12. ↑ "ActiveInject. Fast and Lightweight Dependency Injection Library". dzone.com.
    13. ↑ "ActiveInject Overview". dev.to.
    14. ↑ "ActiveJ. Promise". activej.io.
    15. ↑ "ActiveJ. Eventloop". activej.io.
    16. ↑ "ActiveJ. Net". activej.io.
    17. ↑ "ActiveJ. Datastream module benchmarks". activej.io.
    18. ↑ "ActiveJ. CSP module benchmarks". activej.io.
    19. ↑ "ActiveJ. HTTP module benchmarks". activej.io.
    20. ↑ "Creating High-Performance Web Applications with ActiveJ". www.javacodegeeks.com.
    21. ↑ "ActiveJ. Launcher". activej.io.
    22. ↑ "ActiveJ. Service Graph". activej.io.
    23. ↑ "ActiveSerializer. Ultra-fast Java serialization library". dev.to.
    24. ↑ "ActiveSerializer official website". serializer.activej.io.
    25. ↑ "eishay/jvm-serializers". August 24, 2020 – via GitHub.
    26. ↑ "ActiveCodegen official website". codegen.activej.io.
    27. ↑ "ActiveSpecializer official website". specializer.activej.io.
    28. ↑ "Transforming AST with ActiveSpecializer". dev.to.
    29. ↑ "ActiveRPC official website". rpc.activej.io.
    30. ↑ "ActiveFS official website". fs.activej.io.
    31. ↑ "Creating a Cluster File Storage With ActiveJ". dzone.com.
    32. ↑ "ActiveCRDT official website". crdt.activej.io.
    33. ↑ "ActiveJ Overview. New Full-stack Java Framework". jaxenter.com.
    34. ↑ "AdKernel. Our technologies". adkernel.com.



    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.