Exoshell uses PyO3 and Maturin to build a python binary wheel.
Using exoshell from python:
from exoshell import Action
from exoshell import Console
console = Console("exoshell", ("exoshell", "demo"))
console.start()
running = True
while running:
match console.update(1):
case Action.Writeline(line):
console.print(f">> {line}\n")
console.print(f"echo: {line!r}\n")
case Action.Write(c):
console.print(f"{c}")
case Action.Quit():
running = False
case None:
...
console.stop()