mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-14 14:46:12 -04:00
docs improvements
Vendored
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"theme": "obsidian"
|
||||
}
|
||||
Vendored
+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
|
||||
}
|
||||
Vendored
+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,4 +1,3 @@
|
||||
# Bandwidth Upgrade (BWU)
|
||||
|
||||
This document summarizes how Nearby Connections negotiates and performs bandwidth upgrades (e.g. Bluetooth -> Wi‑Fi).
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# Discovery & Advertising
|
||||
|
||||
This page explains how advertising and discovery are implemented and wired into the Core API.
|
||||
|
||||
@@ -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, Wi‑Fi, 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, Wi‑Fi 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.
|
||||
@@ -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, Wi‑Fi, 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, Wi‑Fi 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`
|
||||
Reference in New Issue
Block a user