1. Introduction
  2. Getting started
  3. Using Rust from Python
    1. Python modules
    2. Python functions
      1. Function signatures
      2. Error handling
    3. Python classes
      1. Class customizations
        1. Basic object customization
        2. Emulating numeric types
        3. Emulating callable objects
      2. Thread safety
  4. Calling Python from Rust
    1. Python object types
    2. Python exceptions
    3. Calling Python functions
    4. Executing existing Python code
  5. Type conversions
    1. Mapping of Rust types to Python types
    2. Conversion traits
  6. Using async and await
  7. Parallelism
  8. Supporting Free-Threaded Python
  9. Debugging
  10. Features reference
  11. Performance
  12. Type stub generation and introspection
  13. Advanced topics
  14. Building and distribution
    1. Supporting multiple Python versions
  15. Useful crates
    1. Logging
    2. Tracing
    3. Using async and await
  16. FAQ and troubleshooting
  17. Appendix A: Migration guide
  18. Appendix B: Trait bounds
  19. Appendix C: Python typing hints
  20. CHANGELOG
  21. Contributing