@lilactown i don't know if you've seen it, but fwiw the libpython-clj author wrote this: https://techascent.com/blog/next-gen-native.html possibly it would be relatively straight-forward to make tree-sitter bindings via some of what's described in that article.
for the record, it took a bit more work than i thought but this was possible
for any emacs users, the latest release 27.2 of emacs had this in the NEWS file:
** Emacs now builds with dynamic module support by default.
Pass '--without-modules' to 'configure' to disable dynamic module support.
this is relevant because it makes getting emacs-tree-sitter setup easier.