Redefining Java for modern web, cloud, high-load, and microservices solutions

What is ActiveJ?

ActiveJ is an alternative Java platform which is intended as a replacement for Spring, Spark, Quarkus, Micronauts, and other solutions. It is minimalistic, boilerplate-free, and incomparably faster, which is proven by benchmarks.
ActiveJ has minimum third-party dependencies, yet features full stack of technologies with efficient async programming model and powerful DI library ActiveInject.


ActiveJ consists of several loosely coupled components that complement and empower each other: async core (Promise, Eventloop), efficient I/O processing (CSP, Datastream), high-performance Jetty and Netty alternatives that can be used independently of ActiveJ (HTTP, Net), and handy boot utilities (Launcher, Service Graph, etc).

Why ActiveJ?

Excellence of your products

Full stack of unique technologies for lightning-fast and asynchronous web applications with competitive advantage

Superiority of architecture

Lightweight and natively scalable async architecture in contrast to Spring and other similar solutions

Ultimate performance

Squeezing the last bits of performance from your hardware, proven by numerous benchmarks

Simple design

ActiveJ was built from the ground up, so it doesn’t feature tons of abstractions hiding the legacy standards

A step ahead of other solutions

HTTP
ActiveJ - 186.1 Krps
Vert.x - 162.9 Krps
ActiveJ
186.1 Krps
Vert.x
162.9 Krps
Dependency Injection
ActiveJ - 7.2 Mrps Guice - 1.3 Mrps Spring - 1.3 Krps
ActiveJ
7.2 Mrps
Guice
1.3 Mrps
Spring
1.3 Krps
Memcached
ActiveJ - 9.8 Mrps
ActiveJ
9.8 Mrps
RPC
ActiveJ - 15.6 Mrps
ActiveJ
15.6 Mrps
Promise/Futures
ActiveJ - 77.2 Mrps
JDK - 11.7 Mrps
ActiveJ
77.2 Mrps
JDK
11.7 Mrps
Minimum web application size
ActiveJ
1.4 MB
Spring
17 MB
Web application launch time
ActiveJ
0.65 Sec
Spring
14 Sec

Enjoy the development

Perfectly optimized predefined launchers and classes for both typical and more specific use cases combined with ActiveInject DI library enable extremely fast and convenient app development.
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);
	}
}

Genuinely high load networking

Ultra-fast means for I/O processing along with a simple abstraction over low-level async sockets I/O. Create servers that process 45M+ RPS on a single CPU core in a few lines of code.

ChannelSupplier.ofSocket(socket)
    .transformWith(ChannelDeserializer.create(INT_SERIALIZER))
    .transformWith(StreamMapper.create(x -> x + " times 10 = " + x * 10))
    .transformWith(ChannelSerializer.create(UTF8_SERIALIZER))
    .streamTo(ChannelConsumer.ofSocket(socket));

Other ActiveJ technologies

If you want to create something specific or more complex, there is a set of additional ActiveJ technologies that are perfectly compatible with ActiveJ.
Lightweight Dependency Injection, an extremely simple and powerful solution. Significantly outperforms existing solution like Spring DI or Guice.
Extremely fast and space-efficient serializers created with bytecode engineering. Introduces schema-less approach for best performance.
Dynamic class and method bytecode generator on top of ObjectWeb ASM library. Abstracts the complexity of direct bytecode manipulation and allows to create custom classes on the fly.
Ultra high-performance binary protocol. Allows to build distributed applications that require efficient client-server interconnections between servers.
Basis for building efficient, scalable remote file storage, supporting data redundancy, rebalancing, and resharding.
A little bit of magic to speed up your code. Optimizes code for JVM and automagically boosts it up by more than 30%.