# HG changeset patch # User Sebastien Jodogne # Date 1638792811 -3600 # Node ID e22c1284ea0e0e26c41e0ba178f66763fb04cb22 # Parent e1341328cd4ad1888a973c14802d242a181422b6 plugins can be written in rust diff -r e1341328cd4a -r e22c1284ea0e Sphinx/source/developers/creating-plugins.rst --- a/Sphinx/source/developers/creating-plugins.rst Fri Nov 26 07:31:54 2021 +0100 +++ b/Sphinx/source/developers/creating-plugins.rst Mon Dec 06 13:13:31 2021 +0100 @@ -12,16 +12,27 @@ ` consists in extending it by creating new :ref:`plugins `. -Orthanc plugins must use the `plugin SDK -`__ and must be written in C or -C++. They must also fullfil the terms of the `GPLv3 license -`__ that is -used by the core of Orthanc. +Native Orthanc plugins must use the `plugin SDK +`__ whose interface is available as a +`C header +`__. +As a consequence, an Orthanc plugin will typically be written using C +or C++, although it is also possible to create native plugins using +languages that feature compatibility with C headers and with C ABI +(such as Rust or Objective-C). For developers who are more familiar with Python, it is also possible to create plugins using this simpler language. Check out the :ref:`dedicated Python plugin `. +Because the C header providing the Orthanc SDK interface is licensed +using the GPLv3 license, any Orthanc plugin must be licensed either +under the `GPLv3 license +`__ that is +used by the :ref:`core of Orthanc `, or under a more +restrictive license that is compatible with the GPL (typically the +AGPL). + Here are some resources about creating C/C++ plugins: * Sample code for plugins can be found `in the official Orthanc