Universelle Schnittstelle [Alternative zur API]

Hallo Papyrus-Team.

Das eine direkte Einbindung als Add-on aus sicherheitstechnischen Gründen nicht verwirklicht wird, kann ich gut verstehen. Aber wie wäre es, wenn Papyrus eine Art universelle Schnittstelle hätte. Wie beispielsweise API per CBOR, per Sockets oder Ähnliches. Also keine direkte Einbindung in das Programm selbst, sondern innerhalb einer kontrollierten Umgebung. Ich weiß nicht, ob das euch verständlich genug ist.

Hier einmal eine Skizze der Architektur.
Falls jemand Language-Server-Protocol kennt, so was in dieser Art schwebt mir vor.

[Papyrus-Programm] ↔ [Schnittstelle | Intern zu Extern] (empfängt) ↔ (sendet an) [Adapter-Programm | kennt die Schnittstelle] (bindet ein) → [eigentliches Add-on]

Natürlich könnte eine direkte Anbindung realisiert werden; dass heißt, das Adapter-Programm ist gleichzeitig das eigentliche Add-on. Die Idee hierbei ist aber, dass dann jedes beliebige Programm angebunden werden könnte. Man muss nur jemanden finden, der das Adapter-Programm schreibt. :woman_shrugging:t4:

Das wird nicht viel Aufwändiger sein als der ‚übliche‘ Weg (direkte Einbindung der dyn. Lib. [.dll, etc.] ) und erhöht nicht die Komplexität des Papyrus-Programms (Abgesehen von der zwischen Schnittstelle; logischerweise). Da es nur ein Kommunikationsweg gibt der vom Programm ggf. abgekoppelt wäre und eine strikte Protokoll jede unerlaubte Einfluss verhindern kann.

Ich hoffe es ist verständlich.

1 „Gefällt mir“

Wozu würde man das brauchen?

Ich meine: Papyrus ist ein Schreibprogramm. Wenn man damit schreiben will, kann man es benutzen. Und wenn nicht, dann kann man es lassen. Was gibt es daran „anzubinden“?? :thinking:

2 „Gefällt mir“

In einem anderen Thread ging es beispielsweise darum, Citavi einzubinden.
Es kann dort nützlich sein, wo die Funktion von Papyrus für den Zweck nicht ausreicht.
Wie im Thread beschrieben, zum Beispiel beim wissenschaftlichen Arbeiten, das nun einmal weitere Programme benötigen kann. [*]

Und es geht auch nicht darum Papyrus zu ersetzen, sondern zu erweitern, ohne die Komplexität des Programms selbst zu erhöhen. Und niemand muss es nutzen.


Ah, verstehe.

Allerdings müsste man dazu wiederum Citavi umprogrammieren, oder? Was man ja auch nicht kann.

Citavi hat ja eine Schnittstelle, die wir ansprechen können - sonst müsste man ja ein Interface bauen.

Bei Citavi und Zotero sind wir dabei, die einzubinden. Dauert noch etwas.

2 „Gefällt mir“