Skip to main content

nu_plugin_core/
lib.rs

1//! Functionality and types shared between the plugin and the engine, other than protocol types.
2//!
3//! If you are writing a plugin, you probably don't need this crate. We will make fewer guarantees
4//! for the stability of the interface of this crate than for `nu_plugin`.
5
6pub mod util;
7
8mod communication_mode;
9mod interface;
10mod serializers;
11
12pub use communication_mode::{
13    ClientCommunicationIo, CommunicationMode, PreparedServerCommunication, SUPPRESS_STDERR,
14    ServerCommunicationIo,
15};
16pub use interface::{
17    Interface, InterfaceManager, PipelineDataWriter, PluginRead, PluginWrite,
18    stream::{FromShellError, StreamManager, StreamManagerHandle, StreamReader, StreamWriter},
19};
20pub use serializers::{
21    Encoder, EncodingType, PluginEncoder, json::JsonSerializer, msgpack::MsgPackSerializer,
22};
23
24#[doc(hidden)]
25pub use interface::test_util as interface_test_util;