async-tail 0.2.0

Creator: codyrutscher

Last updated:

Add to Cart

Description:

asynctail 0.2.0

async-tail




Asynchronous tailing library written in Rust.

Python wrapper around Rust linemux library, which uses the notify cross-platform filesystem notification library.
Uses PyO3 Rust bindings and PyO3-asyncio to manage Rust/Python event loops lifecycles.
Installation
async-tail requires Python 3.7 - 3.11.
pip install async-tail

Binaries are available for:

Linux: x86_64, aarch64, i686, armv7l, musl-x86_64, musl-aarch64, ppc64le & s390x
MacOS: x86_64 & arm64 (except python 3.7)
Windows: To be done

Otherwise, you can install from source which requires Rust stable to be installed.
Usage
Here are some examples of what async-tail can do:
tail Usage
from async_tail import tail

for line in tail('./path/to/file.log', './path/to/file_2.log'):
print(line)

atail Usage
import asyncio
from async_tail import atail

async def main():
async for line in atail('/path/to/file.txt', '/path/to/file_2.txt'):
print(line)

asyncio.run(main())

Notes
async-tail is a way for me to learn Rust and experiment Rust bindings from Python. It is inspired from the great Samuel COLVIN's work on watchfiles, which provides a Python wrapper around Rust notify crate. This is still under development. More things will come:

Write tests
Setup proper CI
Build wheels for Windows
Build and expose docs
Provide benchmarks

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.