unix-recursive: Fast and flexible primitives for recursive file system IO on Posix systems

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

Blazingly fast functions for recursive file system operations. Utilizing lazy IO for constant space & computation efficiant bindigns to Posix dirstream api.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.0.1
Change log ChangeLog.md
Dependencies base (>=4.7 && <5), bytestring, dir-traverse (==0.2.3.0), directory, dirstream, pipes, pipes-safe, system-filepath, unix, unix-recursive, utf8-string [details]
License BSD-3-Clause
Copyright 2021 Marek Fajkus
Author Marek Fajkus <marek.faj@gmail.com>
Maintainer Marek Fajkus <marek.faj@gmail.com>
Category System, Filesystem
Home page https://github.com/turboMaCk/unix-recursive
Bug tracker https://github.com/turboMaCk/unix-recursive/issues
Source repo head: git clone https://github.com/turboMaCk/unix-recursive
Uploaded by MarekFajkus at 2021-02-28T16:45:00Z

Modules

Flags

Manual Flags

NameDescriptionDefault
binDisabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for unix-recursive-0.1.0.1

[back to package description]

Unix Recursive

build

Blazingly fast functions for recursive file system operations. Utilizing lazy IO for constant space & computation efficiant bindigns to Posix dirstream api.

Comparision with other libraries:

Tests were performed on relatively modern consumer grade HW with relatively modern consumer grade M.2 SSD drive. All done on binaries compiled with optimization that are listing the same directory with 1,705,184 items.

[this lib] Unix Recursive RawFilePath/ByteString

[this lib] Unix Recursive FilePath/String

[alternative] Dir Traverse (FilePath/String is the only option)

[alternative] Dirstream (Filesystem.Path is the only option)

Testing performance

Cabal flag bin is being used for building the example binaries that can be used for measurement.

make bin

or to build and run one of the binaries:

$ stack build --flag unix-recursive:bin --exec "unix-recursive-bytestring-bin ${path-to-directory}"

Hacking

This project uses the "Perfect Haskell Preprocessor" (PHP) for generating haskell source from meta module hs. See gen directory and MakeFile before you start hackking on stuff.