Hi folks,

With the release of 9.0.0-rc1 coming this weekend, I've also released the
first version of the Python supporting library
<https://pypi.org/project/kicad-python/> for it.

There is currently no documentation for this, but if you're the kind of
person who is happy to work with just the code as documentation, consider
this an invitation to start playing around with it (especially if you have
developed plugins for the SWIG bindings in the past and want to try porting
them over).

There will be more formal public announcements of this along with some
documentation when 9.0 stable is released, but for now here are some quick
answers to FAQ:

- The SWIG bindings are not being removed in 9.0.  They will be removed
once we are confident that all existing use cases are covered by new
functionality.  The earliest this would happen is 10.0, but it's tied to
that confidence, not a specific release version.

- The IPC API requires that KiCad be running to communicate with it.  It
only supports "plug-in to the KiCad UI" use cases at the moment.  It does
not support some current use-cases of the SWIG bindings at the moment, such
as opening/manipulating/exporting KiCad board files without KiCad actually
being running.  We have plans to support this kind of use in the future,
but not initially in 9.0.

- The IPC API does not support any plotting/exporting functionality at the
moment.  We recommend using kicad-cli for this functionality.

- The IPC API in 9.0 has focused on replicating the functionality currently
available to SWIG action plugins.  It does not add very many new features
yet, and it does not yet support the schematic editor or library editors.

- Python plugins using the IPC API can run with any Python interpreter on
the user's system (currently supporting between version 3.9 and 3.12; 3.13
doesn't work yet due to a dependency issue).  KiCad has an experimental
feature to automatically manage virtual environments and dependencies for
Python-based plugins.  This works if binary wheels for all required
dependencies are available for the user's platform.  There is not yet any
good user-facing error reporting for handling cases when dependencies can't
be installed automatically.

- There is an experimental Rust binding, but I haven't had the time to
maintain it recently.  I still plan to get back to it, but don't expect
feature parity with the Python bindings anytime soon.

-Jon

-- 
You received this message because you are subscribed to the Google Groups 
"KiCad Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/kicad.org/d/msgid/devlist/CA%2BqGbCDbAiuo-ixEk6BnZHdBdas%3DL4a4rbLNYOPP7S5xeZ3Q8Q%40mail.gmail.com.

Reply via email to