Skip to content

Java compatibility

Gobb inventories every Java class exposed by Babashka 1.12.218. Demand is measured from references in the pinned BB source, tests, and examples. A class name in this report is not a claim that a JVM exists: supported classes are portable Glojure, gojava, or Go-host adapters.

Disposition

State Classes
intentional-difference 23
partial 1
planned 524
supported 35

Implementation ownership

Owner Classes Responsibility
explicit-limitation 23 JVM internals, generated JVM classes, or architecture-specific behavior Gobb will not emulate
glojure 248 Clojure/JVM language types and the reusable host-class bridge
go-adapter 260 Operating-system or target-host behavior implemented with Go adapters
gojava 52 Portable Java API semantics implemented as focused Go packages

Core wave

The first wave covers java.lang, java.io, and java.nio.file. Supported entries below have constructor, method, field, or instance evidence in test/java-compat and the compiled target probe.

Class Owner State Demand
java.io.BufferedInputStream go-adapter supported 1
java.io.BufferedOutputStream go-adapter supported 1
java.io.BufferedReader go-adapter planned 4
java.io.BufferedWriter go-adapter planned 3
java.io.ByteArrayInputStream go-adapter supported 5
java.io.ByteArrayOutputStream go-adapter supported 4
java.io.Closeable go-adapter planned 14
java.io.Console go-adapter planned 3
java.io.DataInput go-adapter planned 2
java.io.DataInputStream go-adapter planned 1
java.io.DataOutput go-adapter planned 2
java.io.DataOutputStream go-adapter planned 1
java.io.EOFException go-adapter planned 3
java.io.File go-adapter supported 122
java.io.FileFilter go-adapter planned 2
java.io.FileInputStream go-adapter supported 1
java.io.FileNotFoundException go-adapter planned 3
java.io.FileOutputStream go-adapter supported 1
java.io.FileReader go-adapter planned 3
java.io.FileWriter go-adapter planned 1
java.io.FilenameFilter go-adapter planned 3
java.io.Flushable go-adapter planned 1
java.io.IOException go-adapter planned 1
java.io.InputStream go-adapter supported 56
java.io.InputStreamReader go-adapter planned 5
java.io.LineNumberReader go-adapter planned 2
java.io.OutputStream go-adapter supported 39
java.io.OutputStreamWriter go-adapter planned 3
java.io.PipedInputStream go-adapter planned 10
java.io.PipedOutputStream go-adapter planned 8
java.io.PrintStream go-adapter planned 1
java.io.PrintWriter go-adapter planned 7
java.io.PushbackInputStream go-adapter planned 6
java.io.PushbackReader go-adapter planned 18
java.io.RandomAccessFile go-adapter planned 5
java.io.Reader go-adapter supported 97
java.io.SequenceInputStream go-adapter planned 1
java.io.StringReader go-adapter supported 9
java.io.StringWriter go-adapter supported 25
java.io.Writer go-adapter supported 47
java.lang.AbstractMethodError glojure planned 3
java.lang.Appendable glojure planned 3
java.lang.ArithmeticException glojure planned 8
java.lang.AssertionError glojure planned 3
java.lang.AutoCloseable glojure planned 1
java.lang.Boolean glojure supported 3
java.lang.Byte glojure planned 3
java.lang.CharSequence glojure planned 6
java.lang.Character glojure supported 11
java.lang.Character$UnicodeBlock glojure planned 1
java.lang.Class glojure planned 54
java.lang.ClassCastException glojure planned 7
java.lang.ClassLoader glojure planned 26
java.lang.ClassNotFoundException glojure planned 3
java.lang.Comparable glojure planned 5
java.lang.Double glojure supported 6
java.lang.Error glojure planned 43
java.lang.Exception glojure supported 233
java.lang.ExceptionInInitializerError glojure planned 3
java.lang.Float glojure planned 3
java.lang.IllegalArgumentException glojure supported 11
java.lang.IllegalStateException glojure supported 7
java.lang.IndexOutOfBoundsException glojure planned 3
java.lang.Integer glojure supported 29
java.lang.InterruptedException glojure planned 3
java.lang.Iterable glojure planned 31
java.lang.LinkageError glojure planned 3
java.lang.Long glojure supported 5
java.lang.Math glojure supported 5
java.lang.NoSuchFieldException glojure planned 1
java.lang.NullPointerException glojure planned 6
java.lang.Number glojure planned 8
java.lang.NumberFormatException glojure planned 3
java.lang.Object glojure planned 42
java.lang.Package glojure planned 1
java.lang.Process glojure planned 23
java.lang.ProcessBuilder glojure planned 18
java.lang.ProcessBuilder$Redirect glojure planned 7
java.lang.ProcessHandle glojure planned 15
java.lang.ProcessHandle$Info glojure planned 3
java.lang.Runnable glojure planned 6
java.lang.Runtime glojure planned 12
java.lang.RuntimeException glojure supported 4
java.lang.SecurityException glojure planned 3
java.lang.Short glojure planned 3
java.lang.StackOverflowError glojure planned 3
java.lang.StackTraceElement glojure planned 8
java.lang.String glojure supported 141
java.lang.StringBuilder glojure supported 14
java.lang.System glojure supported 146
java.lang.Thread glojure partial 76
java.lang.Thread$Builder glojure planned 4
java.lang.Thread$Builder$OfPlatform glojure planned 2
java.lang.Thread$UncaughtExceptionHandler glojure planned 3
java.lang.ThreadDeath glojure planned 3
java.lang.ThreadLocal glojure planned 6
java.lang.Throwable glojure supported 44
java.lang.UnsupportedOperationException glojure supported 4
java.lang.VirtualMachineError glojure planned 3
java.lang.ref.Cleaner glojure planned 2
java.lang.ref.ReferenceQueue glojure planned 1
java.lang.ref.SoftReference glojure planned 1
java.lang.ref.WeakReference glojure planned 2
java.lang.reflect.AccessibleObject glojure planned 1
java.lang.reflect.Array glojure planned 8
java.lang.reflect.Constructor glojure planned 4
java.lang.reflect.Executable glojure planned 5
java.lang.reflect.Field glojure planned 17
java.lang.reflect.Member glojure planned 3
java.lang.reflect.Method glojure planned 13
java.lang.reflect.Modifier glojure planned 2
java.nio.file.CopyOption go-adapter planned 6
java.nio.file.DirectoryNotEmptyException go-adapter planned 1
java.nio.file.DirectoryStream$Filter go-adapter planned 3
java.nio.file.FileAlreadyExistsException go-adapter planned 2
java.nio.file.FileSystem go-adapter planned 8
java.nio.file.FileSystemNotFoundException go-adapter planned 3
java.nio.file.FileSystems go-adapter planned 6
java.nio.file.FileVisitOption go-adapter planned 1
java.nio.file.FileVisitResult go-adapter planned 6
java.nio.file.FileVisitor go-adapter planned 3
java.nio.file.Files go-adapter supported 23
java.nio.file.LinkOption go-adapter planned 13
java.nio.file.NoSuchFileException go-adapter planned 1
java.nio.file.OpenOption go-adapter planned 6
java.nio.file.Path go-adapter supported 90
java.nio.file.PathMatcher go-adapter planned 4
java.nio.file.Paths go-adapter supported 1
java.nio.file.StandardCopyOption go-adapter planned 2
java.nio.file.StandardOpenOption go-adapter planned 5
java.nio.file.attribute.BasicFileAttributes go-adapter planned 5
java.nio.file.attribute.FileAttribute go-adapter planned 3
java.nio.file.attribute.FileTime go-adapter planned 1
java.nio.file.attribute.GroupPrincipal go-adapter planned 5
java.nio.file.attribute.PosixFileAttributes go-adapter planned 7
java.nio.file.attribute.PosixFilePermission go-adapter planned 2
java.nio.file.attribute.PosixFilePermissions go-adapter planned 1
java.nio.file.attribute.UserDefinedFileAttributeView go-adapter planned 6
java.nio.file.attribute.UserPrincipal go-adapter planned 5

Highest-demand classes

Rank Class Owner State References Evidence
1 java.lang.Exception glojure supported 233 src/babashka/impl/classes.clj (77)
test/babashka/error_test.clj (29)
test/babashka/main_test.clj (18)
src/babashka/main.clj (13)
test/babashka/impl/repl_test.clj (10)
2 java.util.Map go-adapter planned 150 test/babashka/deftype_map_test.clj (91)
src/babashka/impl/classes.clj (25)
test/babashka/proxy_test.clj (9)
src/babashka/impl/deftype.clj (8)
src/babashka/impl/repl.clj (7)
3 java.lang.System glojure supported 146 src/babashka/impl/features.clj (24)
src/babashka/main.clj (17)
test/babashka/bb_edn_test.clj (12)
test/babashka/main_test.clj (10)
src/babashka/impl/classes.clj (6)
4 java.lang.String glojure supported 141 src/babashka/impl/repl.clj (23)
src/babashka/impl/classes.clj (14)
test/babashka/interop_test.clj (13)
test/babashka/jline_test.clj (11)
test/babashka/reify_test.clj (9)
5 java.util.stream.Stream go-adapter planned 130 src/babashka/impl/classes.clj (47)
test/babashka/interop_test.clj (18)
test/babashka/jline_test.clj (9)
src/babashka/impl/proxy.clj (8)
test/babashka/main_test.clj (7)
6 java.io.File go-adapter supported 122 test/babashka/main_test.clj (35)
test/babashka/uberjar_test.clj (18)
src/babashka/impl/classes.clj (17)
test/babashka/reify_test.clj (9)
src/babashka/impl/clojure/java/io.clj (6)
7 java.io.Reader go-adapter supported 97 src/babashka/impl/repl.clj (28)
src/babashka/impl/classes.clj (23)
test/babashka/jline_test.clj (9)
test/babashka/main_test.clj (6)
src/babashka/impl/clojure/core/server.clj (5)
8 java.nio.file.Path go-adapter supported 90 test/babashka/main_test.clj (32)
test/babashka/interop_test.clj (9)
src/babashka/impl/classes.clj (8)
test/babashka/reify_test.clj (7)
test/babashka/uberscript_test.clj (7)
9 java.lang.Thread glojure partial 76 src/babashka/impl/classes.clj (20)
test/babashka/interop_test.clj (17)
test/babashka/bb_edn_test.clj (7)
test/babashka/impl/socket_repl_test.clj (6)
src/babashka/main.clj (4)
10 java.io.InputStream go-adapter supported 56 src/babashka/impl/classes.clj (18)
test/babashka/jline_test.clj (7)
src/babashka/impl/proxy.clj (4)
test/babashka/impl/nrepl_server_test.clj (4)
test/babashka/main_test.clj (4)
11 java.lang.Class glojure planned 54 src/babashka/impl/classes.clj (28)
test/babashka/error_test.clj (4)
src/babashka/impl/clojure/java/javadoc.clj (3)
src/babashka/impl/deftype.clj (3)
src/babashka/main.clj (3)
12 java.net.http.HttpClient go-adapter planned 52 test/babashka/java_net_http_test.clj (48)
src/babashka/impl/classes.clj (4)
13 java.io.Writer go-adapter supported 47 src/babashka/impl/pprint.clj (7)
src/babashka/impl/classes.clj (6)
src/babashka/impl/clojure/core/server.clj (6)
test/babashka/impl/repl_test.clj (6)
test/babashka/main_test.clj (6)
14 org.jline.reader.LineReader glojure planned 45 src/babashka/impl/repl.clj (26)
test/babashka/jline_test.clj (8)
src/babashka/impl/classes.clj (7)
test/babashka/impl/repl_test.clj (4)
15 java.lang.Throwable glojure supported 44 src/babashka/impl/clojure/core/server.clj (6)
test/babashka/java_net_http_test.clj (6)
src/babashka/impl/classes.clj (5)
src/babashka/impl/clojure/main.clj (4)
src/babashka/impl/clojure/core.clj (3)
16 java.net.URI go-adapter planned 44 test/babashka/java_net_http_test.clj (36)
src/babashka/impl/classes.clj (3)
test/babashka/interop_test.clj (2)
src/babashka/impl/clojure/java/javadoc.clj (1)
src/babashka/impl/clojure/repl.clj (1)
17 java.net.http.HttpRequest go-adapter planned 44 test/babashka/java_net_http_test.clj (40)
src/babashka/impl/classes.clj (4)
18 java.lang.Error glojure planned 43 src/babashka/impl/classes.clj (22)
test/babashka/error_test.clj (10)
src/babashka/impl/repl.clj (3)
src/babashka/impl/tasks.clj (2)
examples/htmx_todoapp.clj (1)
19 java.lang.Object glojure planned 42 test/babashka/reify_test.clj (11)
src/babashka/impl/classes.clj (5)
test/babashka/proxy_test.clj (5)
src/babashka/impl/clojure/data.clj (4)
src/babashka/impl/proxy.clj (3)
20 java.net.Socket go-adapter planned 40 src/babashka/impl/classes.clj (11)
src/babashka/impl/clojure/core/server.clj (7)
test/babashka/java_net_http_test.clj (4)
test/babashka/scripts/socket_server.bb (3)
test/babashka/test_utils.clj (3)
21 java.io.OutputStream go-adapter supported 39 src/babashka/impl/classes.clj (16)
test/babashka/interop_test.clj (6)
src/babashka/impl/proxy.clj (4)
test/babashka/proxy_test.clj (3)
test/babashka/impl/nrepl_server_test.clj (2)
22 java.net.http.HttpResponse go-adapter planned 34 test/babashka/java_net_http_test.clj (31)
src/babashka/impl/classes.clj (3)
23 java.net.URL go-adapter planned 32 src/babashka/impl/classes.clj (9)
src/babashka/impl/classpath.clj (8)
src/babashka/impl/clojure/repl.clj (4)
test/babashka/scripts/download_and_extract_zip.bb (3)
src/babashka/main.clj (2)
24 sci.lang.Type glojure planned 32 test/babashka/error_test.clj (10)
src/babashka/impl/classes.clj (7)
test/babashka/java_net_http_test.clj (4)
src/babashka/impl/repl.clj (3)
src/babashka/impl/proxy.clj (2)
25 java.net.http.HttpResponse$BodyHandlers go-adapter planned 32 test/babashka/java_net_http_test.clj (31)
src/babashka/impl/classes.clj (1)
26 java.lang.Iterable glojure planned 31 test/babashka/deftype_map_test.clj (23)
src/babashka/impl/classes.clj (4)
test/babashka/main_test.clj (3)
src/babashka/impl/deftype.clj (1)
27 java.lang.Integer glojure supported 29 src/babashka/impl/classes.clj (7)
examples/htmx_todoapp.clj (6)
src/babashka/impl/clojure/spec/alpha.clj (3)
examples/image-viewer.clj (2)
src/babashka/impl/socket_repl.clj (2)
28 java.util.jar.Attributes go-adapter planned 28 src/babashka/impl/classes.clj (12)
test/babashka/interop_test.clj (6)
test/babashka/jline_test.clj (6)
test/babashka/main_test.clj (3)
src/babashka/impl/classpath.clj (1)
29 org.jline.terminal.Attributes glojure planned 28 src/babashka/impl/classes.clj (12)
test/babashka/interop_test.clj (6)
test/babashka/jline_test.clj (6)
test/babashka/main_test.clj (3)
src/babashka/impl/classpath.clj (1)
30 org.jsoup.nodes.Attributes glojure planned 28 src/babashka/impl/classes.clj (12)
test/babashka/interop_test.clj (6)
test/babashka/jline_test.clj (6)
test/babashka/main_test.clj (3)
src/babashka/impl/classpath.clj (1)
31 java.lang.ClassLoader glojure planned 26 src/babashka/impl/classes.clj (11)
src/babashka/impl/classpath.clj (6)
src/babashka/impl/clojure/repl.clj (3)
src/babashka/main.clj (3)
test/babashka/classpath_test.clj (2)
32 java.util.concurrent.Executor go-adapter planned 26 src/babashka/impl/classes.clj (14)
test/babashka/interop_test.clj (5)
src/babashka/impl/clojure/core/async.clj (4)
src/babashka/impl/clojure/core.clj (1)
src/babashka/main.clj (1)
33 java.io.StringWriter go-adapter supported 25 test/babashka/impl/repl_test.clj (6)
test/babashka/main_test.clj (6)
src/babashka/impl/pprint.clj (2)
test/babashka/test_test.clj (2)
test/babashka/test_utils.clj (2)
34 clojure.lang.MapEntry glojure planned 24 test/babashka/deftype_map_test.clj (12)
src/babashka/impl/classes.clj (3)
src/babashka/impl/proxy.clj (2)
test/babashka/interop_test.clj (2)
test/babashka/main_test.clj (2)
35 sci.lang.Var glojure planned 24 test/babashka/interop_test.clj (10)
src/babashka/impl/clojure/test.clj (4)
test/babashka/main_test.clj (4)
src/babashka/impl/classes.clj (3)
src/babashka/impl/clojure/repl.clj (1)
36 java.util.Set go-adapter planned 24 src/babashka/impl/classes.clj (15)
src/babashka/main.clj (3)
examples/notes.clj (2)
src/babashka/impl/clojure/data.clj (2)
src/babashka/impl/clojure/spec/alpha.clj (1)
37 org.jline.terminal.Terminal glojure planned 24 test/babashka/jline_test.clj (17)
src/babashka/impl/classes.clj (7)
38 java.nio.file.Files go-adapter supported 23 test/babashka/interop_test.clj (8)
test/babashka/main_test.clj (5)
test/babashka/reify_test.clj (5)
test/babashka/java_net_http_test.clj (2)
examples/tree.clj (1)
39 java.lang.Process glojure planned 23 src/babashka/impl/classes.clj (14)
test/babashka/main_test.clj (4)
test/babashka/interop_test.clj (3)
test/babashka/impl/nrepl_server_test.clj (1)
test/babashka/scripts/kill_child_processes.bb (1)
40 clojure.lang.Associative glojure planned 23 test/babashka/deftype_map_test.clj (12)
test/babashka/error_test.clj (9)
src/babashka/impl/classes.clj (1)
src/babashka/impl/deftype.clj (1)
41 org.jline.reader.Buffer glojure planned 22 src/babashka/impl/classes.clj (11)
test/babashka/main_test.clj (7)
src/babashka/impl/repl.clj (4)
42 clojure.lang.RT glojure planned 20 test/babashka/classpath_test.clj (4)
test/babashka/interop_test.clj (4)
src/babashka/impl/clojure/core.clj (3)
src/babashka/impl/clojure/spec/alpha.clj (3)
examples/http-server.clj (1)
43 org.jline.reader.ParsedLine glojure planned 20 src/babashka/impl/repl.clj (10)
test/babashka/jline_test.clj (5)
src/babashka/impl/classes.clj (3)
src/babashka/impl/proxy.clj (2)
44 java.util.Collection go-adapter planned 20 test/babashka/deftype_map_test.clj (11)
src/babashka/impl/classes.clj (7)
test/babashka/interop_test.clj (2)
45 org.jline.utils.AttributedString glojure planned 20 test/babashka/jline_test.clj (10)
src/babashka/impl/repl.clj (8)
src/babashka/impl/classes.clj (2)
46 clojure.lang.Fn glojure planned 19 src/babashka/impl/classes.clj (5)
src/babashka/impl/clojure/spec/alpha.clj (4)
src/babashka/impl/clojure/spec/test/alpha.clj (4)
test/babashka/deftype_map_test.clj (2)
test/babashka/reify_test.clj (2)
47 java.io.PushbackReader go-adapter planned 18 src/babashka/impl/classes.clj (3)
src/babashka/impl/clojure/core/server.clj (3)
src/babashka/impl/clojure/core.clj (2)
src/babashka/impl/clojure/main.clj (2)
src/babashka/impl/clojure/tools/reader.clj (2)
48 java.lang.ProcessBuilder glojure planned 18 src/babashka/impl/classes.clj (5)
examples/process_builder.clj (4)
test/babashka/impl/nrepl_server_test.clj (4)
test/babashka/main_test.clj (2)
examples/vim.clj (1)
49 java.util.List go-adapter planned 18 src/babashka/impl/classes.clj (9)
src/babashka/impl/clojure/data.clj (2)
test/babashka/interop_test.clj (2)
test/babashka/jline_test.clj (2)
test/babashka/scripts/kill_child_processes.bb (2)
50 java.time.Instant gojava supported 18 test/babashka/interop_test.clj (9)
test/babashka/cheshire_test.clj (5)
test/babashka/reify_test.clj (2)
examples/pst.clj (1)
src/babashka/impl/classes.clj (1)

The complete 583-class ledger is tracked in compat/java-classes.edn.

Regenerate it with:

make java-compat