docs improvements

kidfromjupiter
2026-01-23 08:55:39 +05:30
parent be808547b0
commit f9c15cd701
11 changed files with 268 additions and 39 deletions
+1
@@ -0,0 +1 @@
{}
+3
@@ -0,0 +1,3 @@
{
"theme": "obsidian"
}
+33
@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": true,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": true,
"bases": true,
"webviewer": false
}
+196
@@ -0,0 +1,196 @@
{
"main": {
"id": "eb751e5ba612fc29",
"type": "split",
"children": [
{
"id": "68f337dce2dd58f0",
"type": "tabs",
"children": [
{
"id": "508fd810461abc23",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "API.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "API"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "0853603dee86d680",
"type": "split",
"children": [
{
"id": "d8ec428621daff6b",
"type": "tabs",
"children": [
{
"id": "5164625baaf5c774",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "bd8f1e33775a9e17",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "2adaba6e609cce78",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "e92484bce26a6e38",
"type": "split",
"children": [
{
"id": "82a97f654317d457",
"type": "tabs",
"children": [
{
"id": "312489bbf37e235f",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "API.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks for API"
}
},
{
"id": "4149860958887f8d",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "API.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from API"
}
},
{
"id": "e17043b8b58405dd",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "befa8efde7a67b0e",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "All properties"
}
},
{
"id": "06062051184e958f",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "API.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline of API"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"bases:Create new base": false
}
},
"active": "508fd810461abc23",
"lastOpenFiles": [
"Bandwidth Upgrade.md",
"Discovery and Advertising.md",
"Feature Flags.md",
"Home.md",
"Mediums.md",
"API.md",
"Nearby Connections Overview.md"
]
}
-1
@@ -1,4 +1,3 @@
# Core API (Core, V1 & V3) and version notes
This page documents the public Core API surface and how V3 maps to the legacy API in this codebase.
-1
@@ -1,4 +1,3 @@
# Bandwidth Upgrade (BWU)
This document summarizes how Nearby Connections negotiates and performs bandwidth upgrades (e.g. Bluetooth -> WiFi).
@@ -1,4 +1,3 @@
# Discovery & Advertising
This page explains how advertising and discovery are implemented and wired into the Core API.
-2
@@ -1,5 +1,3 @@
Feature Flags
=============
This page documents the platform FeatureFlags (FeatureFlags::Flags) defined in
internal/platform/feature_flags.h and their default values. These flags control
+32
@@ -1 +1,33 @@
Welcome to the nearby wiki!
**NOTE: This wiki is not maintained by google or anyone affiliated with google. I'm doing this because I'm developing the linux implementation of nearby connections and sharing because I think its pretty cool and should be available everywhere**
# Nearby Connections — Overview
This page provides a concise architecture-level overview of Nearby Connections as implemented in the `nearby_latest` tree.
**What Nearby Connections is**
- A medium-agnostic, encrypted, reliable socket-like protocol layered atop local radios (Bluetooth, BLE, WiFi, WebRTC, AWDL, etc.).
- Devices advertise and discover services, exchange connection requests, and (after establishing a baseline channel) optionally upgrade to a higher-bandwidth medium.
**Core components (high level)**
- **Core**: public client API. See `connections/core.h` and `connections/core.cc`.
- **ServiceControllerRouter**: serializes Core-level requests and routes them to a ServiceController (see `connections/implementation/service_controller_router.*`).
- **ServiceController** (OfflineServiceController): orchestrates PCP handlers and medium lifecycle.
- **EndpointManager**: tracks remote endpoints and dispatches incoming frames to frame processors.
- **EndpointChannelManager**: holds the active EndpointChannel for each endpoint and manages encryption context and channel replacement (used during BWU).
- **PayloadManager** / Payload types: chunking and transfer of payloads.
- **BwuManager**: bandwidth-upgrade orchestrator; coordinates per-medium BwuHandlers.
- Medium implementations: per-platform/per-medium modules (Bluetooth, BLE, WiFi LAN/Hotspot/Direct, WebRTC, AWDL).
**Typical lifecycle (short)**
1. App calls `Core::StartAdvertising(...)` or `Core::StartDiscovery(...)` (or V3 variants).
2. ServiceControllerRouter routes the request to OfflineServiceController, which starts/stops medium-specific advertising/scanning.
3. When a remote endpoint is found, `RequestConnection()` is used to send a connection request; the responder sees `OnConnectionInitiated`.
4. If accepted, the medium-specific EndpointChannel is registered in EndpointManager; payloads are sent via PayloadManager.
5. Optionally, `InitiateBandwidthUpgrade()` triggers BwuManager to negotiate a higher-bandwidth medium and swap the active EndpointChannel.
**Where to read next**
- [[Bandwidth Upgrade]]
- [[Discovery and Advertising]]
- [[API]]
- [[Mediums]]
+3 -4
@@ -1,4 +1,3 @@
# Mediums (implementations & overview)
This page summarizes each medium implementation, responsibilities, and where to find the code.
@@ -70,7 +69,8 @@ I can't really find any implementations on this.
**BLE L2CAP (LE Connection-Oriented Channels)**
Has some quirks with requiring pairing/bonding. Doesn't really suit the 'it just works' paradigm when you need to pair each time you send a file does it?
Has some quirks with requiring pairing/bonding with linux. Doesn't really suit the 'it just works' paradigm when you need to pair each time you send a file does it?
- Code locations:
- `connections/implementation/ble_l2cap_endpoint_channel.h` / `.cc` (BleL2capEndpointChannel wraps platform L2CAP sockets into an EndpointChannel)
- `connections/implementation/mediums/ble_v2/ble_l2cap_packet.*` and `connections/implementation/mediums/ble_v2.cc` (L2CAP packet handling and BLE v2 integration)
@@ -80,5 +80,4 @@ Has some quirks with requiring pairing/bonding. Doesn't really suit the 'it just
- Feature flag: `connections/implementation/flags/nearby_connections_feature_flags.h` (kEnableBleL2cap)
- Notes:
- L2CAP CoC is modelled as an EndpointChannel that uses a PSM (protocol service multiplexer) when creating server sockets or connecting.
- Although the platform layer exposes lower-security options, Linux/BlueZ and kernel configurations often require pairing/bonding for L2CAP CoC; behavior depends on kernel/BlueZ version and bluetoothd configuration.
- If you plan to enable or test BLE L2CAP on Linux, verify kernel support, BlueZ version, and system-level policies that may enforce bonding.
- Although the platform layer exposes lower-security options, Linux/BlueZ and kernel configurations often require pairing/bonding for L2CAP CoC.
-30
@@ -1,30 +0,0 @@
# Nearby Connections — Overview
This page provides a concise architecture-level overview of Nearby Connections as implemented in the `nearby_latest` tree.
What Nearby Connections is
- A medium-agnostic, encrypted, reliable socket-like protocol layered atop local radios (Bluetooth, BLE, WiFi, WebRTC, AWDL, etc.).
- Devices advertise and discover services, exchange connection requests, and (after establishing a baseline channel) optionally upgrade to a higher-bandwidth medium.
Core components (high level)
- Core: public client API. See `connections/core.h` and `connections/core.cc`.
- ServiceControllerRouter: serializes Core-level requests and routes them to a ServiceController (see `connections/implementation/service_controller_router.*`).
- ServiceController (OfflineServiceController): orchestrates PCP handlers and medium lifecycle.
- EndpointManager: tracks remote endpoints and dispatches incoming frames to frame processors.
- EndpointChannelManager: holds the active EndpointChannel for each endpoint and manages encryption context and channel replacement (used during BWU).
- PayloadManager / Payload types: chunking and transfer of payloads.
- BwuManager: bandwidth-upgrade orchestrator; coordinates per-medium BwuHandlers.
- Medium implementations: per-platform/per-medium modules (Bluetooth, BLE, WiFi LAN/Hotspot/Direct, WebRTC, AWDL).
Typical lifecycle (short)
1. App calls `Core::StartAdvertising(...)` or `Core::StartDiscovery(...)` (or V3 variants).
2. ServiceControllerRouter routes the request to OfflineServiceController, which starts/stops medium-specific advertising/scanning.
3. When a remote endpoint is found, `RequestConnection()` is used to send a connection request; the responder sees `OnConnectionInitiated`.
4. If accepted, the medium-specific EndpointChannel is registered in EndpointManager; payloads are sent via PayloadManager.
5. Optionally, `InitiateBandwidthUpgrade()` triggers BwuManager to negotiate a higher-bandwidth medium and swap the active EndpointChannel.
Where to read next
- Bandwidth upgrade: `Bandwidth_Upgrade.md`
- Advertising & discovery flow: `Discovery_and_Advertising.md`
- Medium-level implementation notes: `Mediums.md`
- Core API & versions: `API.md`