Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to use rust for heavy lifting #25

Closed
paul-hammant opened this issue Dec 11, 2018 · 2 comments · Fixed by #98
Closed

Switch to use rust for heavy lifting #25

paul-hammant opened this issue Dec 11, 2018 · 2 comments · Fixed by #98

Comments

@paul-hammant
Copy link

https://github.com/passcod/notify

^ Yup, another team's work in a heavy lifting language.

Ruby, Java (etc) folks should also depend on notify then we get decent effort to performance tune and bugfix once and bind to more elegant HLLs like Python multiple times. The alternative is to code it yourself and end up with Watchdog's 137 open issues and 20 unconsumed pull requests.

@samuelcolvin
Copy link
Owner

Sounds good to me, but I'm currently not clear about python's interface with rust. Is it production ready?

If you'd like to work in it that would be great. Otherwise I'll look when I get a chance.

@graingert
Copy link

graingert commented Nov 19, 2020

Is it production ready?

there's a nice setuptools plugin that works like cython https://github.com/PyO3/setuptools-rust it will also let you use --py-limited-api=cp35 to build abi3 wheels

This was referenced Jan 30, 2021
samuelcolvin added a commit that referenced this issue Mar 14, 2022
samuelcolvin added a commit that referenced this issue Mar 14, 2022
samuelcolvin added a commit that referenced this issue Mar 16, 2022
samuelcolvin added a commit that referenced this issue Mar 22, 2022
* working on rust backend, #25

* debouncing of raw events

* tweak check_signals usage

* switching to use allow_threads

* tweaks

* using notify 5

* working!

* renaming and fixing ci

* add rust toolchain and fix mypy settings

* moving rust files, fixing build

* fix linting

* fix linting, cache

* tweak linting cache

* cache rust target

* caching build on test jobs

* print directories

* cache .rustup

* try caching .cargo too

* remove ls commands

* getting awatch to work

* switching to a class that keeps the watcher

* fixing filters

* fixing events happening between steps

* fix linting

* fixing tests

* fix ci

* bump

* linting

* linting

* fix install

* pytest-timeout

* remove trio from tests

* linting

* fixing tests

* fix test_does_not_exist on linux

* fix for py3.7

* fix tests on windows

* avoid open_signal_receiver on windows

* improve coverage

* fix coverage

* more tests and tweak event grouping

* adding event logging

* updating cli to allow multiple files

* adding env var for changes

* fix test_watch_multiple on macos

* trying ci build

* fix set_version, combine deploy

* use pytest-timeout when testing binaries

* update readme and other tweaks

* zip_safe False

* fixing CI wheel build

* improve docs, add arm64 to macos builds

* rewrite filters, fix ignore-paths

* document WATCHGOD_CHANGES

* more details in docs, add aarch64-apple-darwin

* try just adding stable-i686-pc-windows-msvc for win32 builds

* correct windows toolchain install

* cleanup ci
@samuelcolvin samuelcolvin pinned this issue Mar 22, 2022
@samuelcolvin samuelcolvin changed the title Depend on Rust's Notify 'crate' Switch to use rust for heavy lifting Mar 22, 2022
@samuelcolvin samuelcolvin unpinned this issue Mar 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants