Create ultra-fast Java in-memory database applications.
Ultra-fast. Super easy to use.

Final Release is out !
GET STARTED
 
Built for ultra high-speed database applications, light-weight web- & microservices, high-complex data structure, realtime solutions, AI & ML.

MicroStream Serializer

Getting Started
 
The better serialization for Java.
At last secure serialization. Ultra-fast. Super easy to use.
Solves the biggest security issue of Java.

Why MicroStream Serializer ?

MicroStream is the very first bullet-proof serialization for Java.
No code is transferred, data only
At last Secure Serialization
No code is executed through de-serialization
Injecting malicious code is impossible
Solves the biggest security issue of Java
Highly optimized native byte format
Ultra-fast
No unnecessary overhead by strings
Redundance-free data transfer
icons8-protect-80
open_window_100px
Any object can be serialized
No Limitations
No special superclass needed
No annotations needed
Any object from third-party APIs
can be serialized
No special interface needed
Super easy to use
Pure Java
Use your classes as they are
Download via Maven
Easy migration
rocket_100px
snipping_100px

MicroStream solves the
biggest security issue of Java ever !

Getting Started
 
Java-Duke_100px
icons8-protect-80
Jetstream-Icon-blue

Serialization was a horrable mistake.


Half of all Java vulnerabilities are linked to the current serialization.


 
Mark Reinhold

Chief Architect of the Java Platform at Oracle

"

"

What's about XML & JSON ?


XML & JSON are flat data structure that break your Java object-graph.

<

</

Very slow in case of larger amount of data
Unsuited data structure brake your object-references
Unnecessary overhead
Loss of performance by parsing XML/JSON strings
Often redundant data are transferred
Super easy to replace

Make your Java secure starting today !


 
With MicroStream serialization you can not only run your own code secure, but your dependencies as well.
MicroStream can easily replace the default serialization of many frameworks.
Java-Duke_100px
icons8-protect-80
Getting Started
 

MicroStream Architecture


MicroStream Serializer enables communication between object-graphs.
MicroStream-Java-Serialization-Architecture
icons8-protect-80
icons8-protect-80
RECEIVER
DE-SERIALIZATION
RECEIVER
DE-SERIALIZATION
SENDER
SERIALIZATION
BINARY DATA STREAM
(DATA ONLY)
SENDER
SERIALIZATION
CLIENT
HOST
MicroStream allows to transfer any Java object-graph.
No code is transferred, data only. No code is executed by de-serialization.
Thus, injecting malicious code is impossible.

Some Code


MicroStream serialization is super easy to use ...
// MicroStream Default Configuration Localhost (can be changed)
ComChannel com = ComBinary.connect();   
System.out.println("Server reply: " + com.request("Hello World!"));
// MicroStream Default Configuration Localhost (can be changed)
ComBinary.runHost();
Host:
Client:
This simple show-case uses the default implementation running on localhost. After connecting to the host, the client sends a "Hello World!" string to the host, which is sent back to the client as an echo by the host.
Hello World!
// setup a client instance for a custom address
final ComClient<?> client = ComBinary.Foundation()
   .setClientTargetAddress(new InetSocketAddress("www.myAddress.com", 1337))
   .createClient()
;

// create a channel by connecting the client
final ComChannel channel = client.connect();

// send an object graph (customer and its name) through the channel and print the response
System.out.println("Server reply: " + channel.request(new Customer("John Doe")));
// setup the host instance for a custom address and business logic
final ComHost<?> host = ComBinary.Foundation()
   .setHostBindingAddress(new InetSocketAddress("www.myAddress.com", 1337))
   .registerEntityTypes(Customer.class)
   .setHostChannelAcceptor(hostChannel ->
   {
       
// sessionless / stateless greeting service.
       final Customer customer = (Customer)hostChannel.receive();
       hostChannel.send("Welcome, " + customer.name());
       hostChannel.close();
   })
   .createHost()
;
Host:
Client:
Sending any object
After connecting to the host, the client sends a tiny customer object to the host. After receiving the object the host sends a welcome message bacj to the client.
 
With MicroStream you can also store data. However, MicroStream is not a dumpy blob store. MicroStream allows you to store and load single entities. The persistent data can be specifically updated partially like database management systems do. MicroStream enables you to develop ultra-fast pure Java in-memory database applications for the next generation use-cases.
Native Java Data Store.
Create ultra-fast Java in-memory
database apps.

MicroStream

jet2

Store your data with MicroStream !


MicroStream is also a the very first Native Java Data Store.

What's the problem with Java serialization of today ?


Java serialization is totally unsecure and a high security risk.
Serialization:
An object is converted into a binary data stream that is sent to a receiver.
De-Serialization:
The receiver aquires the data stream and creates an object again.
MicroStream-Java-Serialization
BINARY DATA STREAM
(DATA & JAVA CLASSES)
SENDER
RECEIVER
All used objects must implement the
Data and code is transferred together
Limitations
High security risk
Any transferred code is executed automatically
interface java.io.Serializable
through de-serialization
It's not possible to serialize objects from third-party
Only limited protection by black- & white-listing
Keeping your object-graph synchronous
Most of our dependencies are risky as well
Serialization is used almost everywhere
is not suited
Creating and injecting malicious code is scarily easy
APIs that haven't implemented that interface
spy_100px
handcuffs_100px
© 2019 MicroStream Software. All Rights Reserved.
MicroStream-Logo-Graphic-grey
MicroStream-Logo-Text-grey