Manifold is a revolutionary new breed of Java tooling to make Java development more appealing and productive.
Latest commit 6b4f786 Nov 12, 2018

README.md

What is Manifold?

Manifold is a revolutionary new breed of Java tooling. It provides powerful features to make Java development more appealing and productive. Simply add the Manifold jar to your project and begin taking advantage of it.

What can you do with Manifold?

Meta-programming

Gain direct, type-safe access to structured data. Eliminate code generators. Minimize build time.

// JSON files are types!
Person person = Person.fromJsonUrl(url);
person.setFirstName("Scott");

Extensions

Add extension methods and interfaces to existing Java classes, even String, List, and File. Eliminate boilerplate code.

String greeting = "hello";
greeting.myMethod(); // augment any type

Structural Typing

Unify disparate APIs. Bridge software components you do not control. Access maps through type-safe interfaces.

MyInterface thing = (MyInterface)notMyInterface;
thing.myMethod(); // treat as your interface

Templates

Make type-safe, templatized data files using pure Java. Use the same template expressions in Java strings.

int hour = 8;
// print "It is 8 o'clock"
System.out.println("It is $hour o'clock"); 

Libraries

Leverage stock Manifold extension libraries for standard Java classes. Save time and reduce boilerplate code.

File file = new File(path);
// Use refreshing extensions to File
String content = file.readText();

IntelliJ

Use the Manifold IntelliJ IDEA plugin to fully leverage Manifold in your development cycle. The plugin provides comprehensive support for IntelliJ features including code completion, navigation, usage searching, refactoring, incremental compilation, hotswap debugging, full-featured template editing, and more.

Learn More