Skip to content

Very slow IO runtime for Scala. Written in Rust.

License

Notifications You must be signed in to change notification settings

mrobakowski/iors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iors

iors (pronounce it however you want, but I like to say it like "yours") is an experimental IO runtime for Scala, written in Rust. Lots of JNI and other kinds of scary code.

Performance

Performance sucks big time.

When I first started the project, I thought it may outperform an optimized IO interpreter written in Scala because, you know, JVM is supposed to be slow and Rust is supposed to be fast. BUT, after thinking about this more, this will obviously inhibit some of JVM's JIT optimizations, so it can actually end up slower. Who knows, JITs are weird. But yeah, it did end up significantly slower. Unless I measured something very incorrectly (which may have happened).

Benchmarks are shamelessly stolen from cats-effect.

To be fair I haven't run them all, because after running just one of them (AttemptBenchmark) I saw numbers around 50x worse than cats-effect, which I based the implementation on.

Why?

idk

for fun?

Should I use this?

no.

Lessons learned

This was my first "big" project involving JNI. Now I know that JNI is slooooow if you do a lot of switching between native code and JVM code, like in callback-heavy code, which an IO interpreter obviously is.

License

MIT

About

Very slow IO runtime for Scala. Written in Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published