Scala IO Core
Scala IO Core will be completed before much more work is done on the FS API so that the library
won't be forever being developed. In addition to the major items listed below the common task of
improving API and removing inconsistency will always be a focus. As will performance.
- Large Data Integration Tests
Create test sets that are very large (several GB) and verify that the operations can
handle the load and work correctly when skipping data
- Write Benchmark Tests
Benchmark the integration tests as well as other types of operations (such as
large number of small requests on a large dataset).
The idea is to track the performance of each version and ensure it continues to
increase each version (and by how much)
- Add error handling to resources
At the moment unless a resource is used via Josh's ARM API an error reading from a
stream results in an exception being thrown. I want to allow a user to add an error
handler on the resource itself rather than having to use a catch block each time the
resource is used
- Add Iteratee style IO processing
This is a very flexible way of handling IO with very good compositional properties
but for some (who are not familiar with the pattern) it can be less approachable
- Add asynchronous callback style IO handling
This will appear much like that which is seen in NodeJS and will be implemented
based on the Iteratee IO processing
- Implement Java 7 Implementations
This may be raised in the list of priorities depending on how long each task takes.
Scala IO File
- Implement ZipFS
The goal is to have several different filesystem implementations that have different
characteristics to insure that the API is sufficiently flexible and, most importantly,
to make sure that the file system implementation API is flexible. The usage API is
design following NIO2 so I am fairly confident that has sufficient flexibility but the
implementer's API is also a very important API.
- Implement based on Java 7
- TBD...