localnative Component Diagrams
Browser Extension Components & Data Flow
graph LR
subgraph web browser
subgraph browser web page tab
title[web page title]
html[web page html content]
end
subgraph localnative-browser-extension
subgraph JavaScript - popup.js etc
api[call browser api]
nmc[native messaging client]
end
ext-html[extension HTML UI - popup.html]
subgraph manifest[extension manifest.json]
ep[extension permissions - nativeMessaging etc]
ht[extension default_popup - popup.html]
end
end
end
subgraph app manifest - app.localnative.json
p[host permission - allowed_origins/allowed_extensions]
loc[host binary location - path]
name[name - app.localnative]
end
subgraph web extension host binary: localnative-web-ext-host
stdin
stdout
run[database CRUD operations]
stdin --> run --> stdout
end
title --> api
html --> api
stdout --> nmc --> stdin
loc --> nmc
localnative Sequence Diagrams - Data Flows
Browser Extension
sequenceDiagram
participant E as Browser Extension
participant C as localnative-web-ext-host
participant S as localnative.sqlite3
Note over E,C: stdin
E->>+C: Command/Request JSON
Note over C,S: Rust to SQL
C->>+S: CRUD on Database
S-->>-C: Database Response
Note over C,E: stdout
C-->>-E: Response JSON
Desktop App
sequenceDiagram
participant E as localnative-electron
participant N as localnative-neon
participant C as localnative_core
participant S as localnative.sqlite3
Note over E,N: JavaScript
E->>+N: Command/Request JSON
Note over N,C: JavaScript to Rust Binding
N->>+C: Command/Request
Note over C,S: Rust to SQL
C->>+S: CRUD on Database
S-->>-C: Database Response
C-->>-N: Response
N-->>-E: Response JSON
Mobile App
sequenceDiagram
participant E as Android and iOS App
participant C as localnative_core
participant S as localnative.sqlite3
Note over E,C: JVM/Swift to Rust Bridge
E->>+C: Command/Request JSON
Note over C,S: Rust to SQL
C->>+S: CRUD on Database
S-->>-C: Database Response
C-->>-E: Response JSON