filepath-bytestring: Library for manipulating RawFilePaths in a cross platform way.
This package provides functionality for manipulating RawFilePath
values. It can be used as a drop in replacement for the filepath library
to get the benefits of using ByteStrings. It provides three modules:
System.FilePath.Posix.ByteString manipulates POSIX/Linux style
RawFilePathvalues (with/as the path separator).System.FilePath.Windows.ByteString manipulates Windows style
RawFilePathvalues (with either\or/as the path separator, and deals with drives).System.FilePath.ByteString is an alias for the module appropriate to your platform.
All three modules provide the same API, and the same documentation (calling out differences in the different variants).
This package is now deprecated, since filepath 1.4.100.0 provides an OsPath type that is based on a bytestring. See https:/hasufell.github.ioposts/2022-06-29-fixing-haskell-filepaths.html
[Skip to Readme]
Downloads
- filepath-bytestring-1.5.2.0.3.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 1.4.2.1.0, 1.4.2.1.1, 1.4.2.1.2, 1.4.2.1.3, 1.4.2.1.4, 1.4.2.1.5, 1.4.2.1.6, 1.4.2.1.7, 1.4.2.1.8, 1.4.2.1.9, 1.4.2.1.10, 1.4.2.1.11, 1.4.2.1.12, 1.4.2.1.13, 1.4.100.3.1, 1.4.100.3.2, 1.5.2.0.0, 1.5.2.0.1, 1.5.2.0.2, 1.5.2.0.3 |
|---|---|
| Change log | CHANGELOG |
| Dependencies | base (>=4 && <4.22), bytestring (>=0.11.3.0), filepath (>=1.4.100.4 && <1.5.0.0 || >=1.5.2.0 && <=1.5.4.0), unix , utf8-string [details] |
| License | BSD-3-Clause |
| Copyright | Neil Mitchell 2005-2019 Joey Hess 2019-2021 |
| Author | Neil Mitchell <ndmitchell@gmail.com> |
| Maintainer | Joey Hess <id@joeyh.name> |
| Category | System |
| Source repo | head: git clone git://git.joeyh.name/haskell-filepath-bytestring.git |
| Uploaded | by JoeyHess at 2025年08月04日T14:36:53Z |
| Distributions | Arch:1.5.2.0.2, Debian:1.4.2.1.6, Fedora:1.5.2.0.2, LTSHaskell:1.5.2.0.3, NixOS:1.5.2.0.3, Stackage:1.5.2.0.3, openSUSE:1.5.2.0.3 |
| Reverse Dependencies | 8 direct, 0 indirect [details] |
| Downloads | 8865 total (27 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2025年08月04日 [all 1 reports] |
Readme for filepath-bytestring-1.5.2.0.3
[back to package description]FilePath Hackage version Linux build status Windows build status
The filepath-bytestring package provides functionality for manipulating RawFilePath values (ByteStrings).
Its interface is equivilant to the filepath package.
It provides three modules:
System.FilePath.Posix.ByteStringmanipulates POSIX/Linux styleRawFilePathvalues (with/as the path separator).System.FilePath.Windows.ByteStringmanipulates Windows styleRawFilePathvalues (with either\or/as the path separator, and deals with drives).System.FilePath.ByteStringis an alias for the module appropriate to your platform.
All three modules provide the same API, and the same documentation (calling out differences in the different variants).
Developer notes
This package's version should be the same as the filepath it's derived
from, with an added revision number.
Most of the code is in System/FilePath/Internal.hs which is #include'd into both System/FilePath/Posix.hs and System/FilePath/Windows.hs with the IS_WINDOWS CPP define set to either True or False. This Internal module is a bit weird in that it isn't really a Haskell module, but is more an include file.
The library has extensive doc tests. Anything starting with -- > is transformed into a doc test as a predicate that must evaluate to True. These tests follow a few rules:
- Tests prefixed with
Windows:orPosix:are only tested against that specific implementation - otherwise tests are run against both implementations. - Any single letter variable, e.g.
x, is considered universal quantification, and is checked withQuickCheck. - If
Valid x =>appears at the start of a doc test, that means the property will only be tested withxpassing theisValidpredicate.
Also, all exported functions are quickchecked against the ones from
filepath to make sure thay generate equivilant results.
The tests can be generated by Generate.hs in the root of the repo, and will be placed in tests/TestGen.hs. The TestGen.hs file is checked into the repo, and the CI scripts check that TestGen.hs is in sync with what would be generated a fresh - if you don't regenerate TestGen.hs the CI will fail.
The .ghci file is set up to allow you to type ghci to open the library, then :go will regenerate the tests and run them.