
Dear pythoneers, I'm pleased to announce a little update of the RSFile I/O Library, bringing support for recent Python versions. RSFile provides drop-in replacements for io classes and for the open() builtin. Its goal is to provide a cross-platform, reliable, and comprehensive synchronous file I/O API, with advanced features like fine-grained opening modes, shared/exclusive file record locking, thread-safety, cache synchronization, file descriptor inheritability, and handy stat getters (size, inode, times...). Possible use cases for this library: write to logs concurrently without ending up with garbled data, manipulate sensitive data like disk-based databases, synchronize heterogeneous producer/consumer processes when multiprocessing semaphores aren't an option... Unix users might particularly be interested by the workaround that this library provides, concerning the weird semantic of fcntl() locks (when any descriptor to a disk file is closed, the process loses ALL locks acquired on this file through any descriptor). RSFile has been tested with CPython 3.7+, on Windows/Linux/Mac systems, and should work on other python implementations The technical documentation of RSFile includes a comprehensive description of concepts and gotchas encountered while developing this library, which could be useful to anyone interested in getting in touch with gory file I/O details. Downloads: https://pypi.python.org/pypi/RSFile Documentation: http://rsfile.readthedocs.io/en/latest/ Repository: https://github.com/pakal/rsfile PS: The implementation is currently pure-python, so if you need high performances, using standard python streams in parallel will remain necessary. Also, do not use non-blocking streams with this library or with the IO module in general, lots of things could go wrong...
participants (1)
-
Pascal Chambon