Disclaimer: This is not an official Google product.
Mug
A small Java 8+ utilities library (javadoc), widely used in Google’s internal Java codebase, with 0 deps (Proto, BigQuery, Guava addons are in separate artifacts). 
Highlights
- ✅
BiStream
– streams Map
and pair-wise collections
→ BiStream.zip(keys, values).toMap()
- ✅
Substring
– composable substring extraction & manipulation
→ Substring.between("(", ")").from("call(foo)") → "foo"
- ✅
StringFormat
– compile-time-safe bidirectional parsing/formatting
→ new StringFormat("/home/{user}/{date}").parse(filePath, (user, date) -> ...)
- ✅
SafeSql
– library-enforced safe SQL template
→ SafeSql.of("select id, `{col}` from Users where id = {id}", col, id)
- ✅
DateTimeFormats
– parse datetimes by example
→ DateTimeFormatter format = formatOf("2024-03-14 10:00:00.123 America/New_York")
More tools
- [`Iteration`](https://github.com/google/mug/wiki/Iteration-Explained) - implement lazy stream with recursive code
- [`BinarySearch`](./mug-guava/src/main/java/com/google/mu/collect/README.md) - solve LeetCode binary search problems
→ `BinarySearch.inSortedArrayWithTolerance(doubleArray, 0.0001).find(target)`
- [`StructuredConcurrency`](/mug/mug/src/main/java/com/google/mu/util/concurrent/) - simple structured concurrency on virtual threads
→ `concurrently(() -> fetchArm(), () -> fetchLeg(), (arm, leg) -> makeRobot(arm, leg))`
- [`MoreStreams`](https://google.github.io/mug/apidocs/com/google/mu/util/stream/MoreStreams.html)
→ `whileNotNull(queue::poll).filter(...).map(...)`
- [`Optionals`](https://google.github.io/mug/apidocs/com/google/mu/util/Optionals.html)
→ `return optionally(obj.hasFoo(), obj::getFoo);`
Installation
##### Maven
Add the following to pom.xml:
```
com.google.mug
mug
9.1
```
Add `mug-errorprone` to your annotationProcessorPaths:
```
maven-compiler-plugin
com.google.errorprone
error_prone_core
2.23.0
com.google.mug
mug-errorprone
9.1
```
Protobuf utils ([javadoc](https://google.github.io/mug/apidocs/com/google/mu/protobuf/util/package-summary.html)):
```
com.google.mug
mug-protobuf
9.1
```
Guava add-ons ([`SafeSql`](https://google.github.io/mug/apidocs/com/google/mu/safesql/SafeSql.html)):
```
com.google.mug
mug-guava
9.1
```
##### Gradle
Add to build.gradle:
```
implementation 'com.google.mug:mug:9.1'
implementation 'com.google.mug:mug-guava:9.1'
implementation 'com.google.mug:mug-protobuf:9.1'
```