pub struct AppState {Show 13 fields
pub store: Arc<HashtreeStore>,
pub auth: Option<AuthCredentials>,
pub webrtc_peers: Option<Arc<WebRTCState>>,
pub ws_relay: Arc<WsRelayState>,
pub max_upload_bytes: usize,
pub public_writes: bool,
pub allowed_pubkeys: HashSet<String>,
pub upstream_blossom: Vec<String>,
pub social_graph: Option<Arc<SocialGraphAccessControl>>,
pub social_graph_ndb: Option<Arc<Ndb>>,
pub social_graph_root: Option<[u8; 32]>,
pub socialgraph_snapshot_public: bool,
pub nostr_relay: Option<Arc<NostrRelay>>,
}Fields§
§store: Arc<HashtreeStore>§auth: Option<AuthCredentials>§webrtc_peers: Option<Arc<WebRTCState>>WebRTC peer state for forwarding requests to connected P2P peers
ws_relay: Arc<WsRelayState>WebSocket relay state for /ws clients
max_upload_bytes: usizeMaximum upload size in bytes for Blossom uploads (default: 5 MB)
public_writes: boolAllow anyone with valid Nostr auth to write (default: true) When false, only allowed_pubkeys can write
allowed_pubkeys: HashSet<String>Pubkeys allowed to write (hex format, from config allowed_npubs)
upstream_blossom: Vec<String>Upstream Blossom servers for cascade fetching
Social graph access control (nostrdb-backed when feature enabled)
Social graph nostrdb handle for snapshot export
Social graph root pubkey bytes for snapshot export
Allow public access to social graph snapshot endpoint
nostr_relay: Option<Arc<NostrRelay>>Nostr relay state for /ws and WebRTC Nostr messages
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AppState
impl !RefUnwindSafe for AppState
impl Send for AppState
impl Sync for AppState
impl Unpin for AppState
impl !UnwindSafe for AppState
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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