Skip to content

asdm90/loom-lab

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Loom Lab

Experiments with Project Loom's features based on these JEPs:

Experiments

For these experiments, you need Java 19. Build the project with mvn package to get target/loom-lab.jar. To run it:

java --enable-preview -p target/loom-lab.jar -m loom.lab $EXPERIMENT $ARGUMENTS

Where:

  • $EXPERIMENT selects one of the experiments by name
  • $ARGUMENTS configures the experiment

For details on these, see specific experiments below.

Disk Stats

Walks over all folders and files in a given directory to gather their respective sizes. Can be configured to either run as a single thread or with one virtual thread for each file/folder.

Echo Client & Server

A client and server that exchange messages via sockets on localhost:8080. Client protocol:

  • sends a single line, terminated by a newline
  • waits for a single line (i.e. a string terminated by a newline) to be received

Server protocol:

  • reads a single line (i.e. a string terminated by a newline) from that socket
  • waits a predetermined amount of time
  • replies with the same string, including the newline

To try this out, run the client and the server in different shells.

Note: For a much more thorough experiment with an echo server, check out Elliot Barlas' project-loom-experiment.

GitHub Crawler

Starting from a given seed URL, crawls GitHub pages and prints their connections and statistics. Only runs with virtual threads but also uses/demonstrates some Data-Oriented Programming concepts.

About

Experimenting with Project Loom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%