Skip to main content

Testnet

Struct Testnet 

Source
pub struct Testnet { /* private fields */ }
Expand description

A local test network for Pubky Core development. Can create a flexible amount of pkarr relays, http relays and homeservers.

Keeps track of the components and can create new ones. Cleans up all resources when dropped.

Implementations§

Source§

impl Testnet

Source

pub async fn new() -> Result<Self>

Run a new testnet with a (fully-initialized) local DHT.

Source

pub async fn new_unseeded() -> Result<Self>

Run a new testnet with a (faster, but partially-initialized) local DHT.

Source

pub async fn new_with_custom_postgres( postgres_connection_string: ConnectionString, ) -> Result<Self>

Run a new testnet with a local DHT. Pass an optional postgres connection string to use for the homeserver. If None, the default test connection string is used.

Source

pub async fn create_homeserver(&mut self) -> Result<&HomeserverApp>

Run the full homeserver app with core and admin server.

Uses ConfigToml::default_test_config() which enables the admin server. Automatically listens on ephemeral ports and uses this Testnet’s bootstrap nodes and relays.

Source

pub async fn create_random_homeserver(&mut self) -> Result<&HomeserverApp>

Run the full homeserver app with core and admin server using a freshly generated random keypair.

Uses ConfigToml::default_test_config() which enables the admin server. Automatically listens on ephemeral ports and uses this Testnet’s bootstrap nodes and relays.

Source

pub async fn create_homeserver_app_with_mock( &mut self, mock_dir: MockDataDir, ) -> Result<&HomeserverApp>

Run the full homeserver app with core and admin server Automatically listens on the configured ports. Automatically uses the configured bootstrap nodes and relays in this Testnet.

Source

pub async fn create_http_relay(&mut self) -> Result<&HttpRelay>

Run an HTTP Relay

Source

pub async fn create_pkarr_relay(&mut self) -> Result<Url>

Run a new Pkarr relay.

You can access the list of relays at Self::pkarr_relays.

Source

pub fn dht_bootstrap_nodes(&self) -> Vec<DomainPort>

Returns a list of DHT bootstrapping nodes.

Source

pub fn dht_relay_urls(&self) -> Vec<Url>

Returns a list of pkarr relays.

Source

pub fn client_builder(&self) -> PubkyHttpClientBuilder

Create a pubky::PubkyHttpClientBuilder and configure it to use this local test network.

Source

pub fn client(&self) -> Result<PubkyHttpClient, BuildError>

Creates a pubky::PubkyHttpClient pre-configured to use this test network.

This is a convenience method that builds a client from Self::client_builder.

Source

pub fn sdk(&self) -> Result<Pubky, BuildError>

Creates a pubky::Pubky SDK facade pre-configured to use this test network.

This is a convenience method that builds a client from Self::client_builder.

Source

pub fn pkarr_client_builder(&self) -> ClientBuilder

Create a pkarr::ClientBuilder and configure it to use this local test network.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CompatExt for T

Source§

fn compat(self) -> Compat<T>

Applies the Compat adapter by value. Read more
Source§

fn compat_ref(&self) -> Compat<&T>

Applies the Compat adapter by shared reference. Read more
Source§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the Compat adapter by mutable reference. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> MaybeSend for T
where T: Send,