Skip to content

Commit bd4c5e6

Browse files
committed
docs: improve server architecture documentation
- Clarify that ActivityWatch has two server implementations (Python and Rust) - Reorganize REST API documentation with detailed bullet points - Enhance frontend capabilities description with specific features - Better structure for readability and comprehensiveness
1 parent a7608c8 commit bd4c5e6

1 file changed

Lines changed: 18 additions & 7 deletions

File tree

README.md

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -224,18 +224,29 @@ This repo is a bundle of the core components and official modules of ActivityWat
224224

225225
### Server
226226

227-
`aw-server` is the official implementation of the core service which the other ActivityWatch services interact with. It provides a REST API to a datastore and query engine. It also serves the web interface developed in the `aw-webui` project (which provides the frontend part of the webapp).
227+
ActivityWatch has two server implementations:
228+
229+
- `aw-server` (Python) - The current default implementation
230+
- `aw-server-rust` - A Rust implementation that is the planned future default
231+
232+
Both provide a REST API to a datastore and query engine, and serve the web interface developed in the `aw-webui` project (which provides the frontend).
228233

229234
The REST API includes:
230235

231-
- Access to a datastore suitable for timeseries/timeperiod-data
232-
- A query engine and language for such data
236+
- Access to a datastore suitable for timeseries/timeperiod-data organized in "buckets" (containers grouping related activity data by metadata like client type or hostname)
237+
- **Buckets API:** Create, retrieve, and delete data buckets
238+
- **Events API:** Read and write timestamped events within buckets
239+
- **Heartbeat API:** Watchers use heartbeat signals to update the current state of activity (e.g., active application, AFK status)
240+
- **Query API:** simple query scripting language for filtering, merging, grouping, and transforming events
241+
- **Client libraries:** Language-specific libraries like `aw-client` (Python), `aw-client-js`, and `aw-client-rust` that wrap REST endpoints for programmatic access
233242

234-
The webapp includes:
243+
The frontend (`aw-webui`) includes:
235244

236-
- Data visualization & browser
237-
- Query explorer
238-
- Export functionality
245+
- **Data visualization:** Dashboard and timeline views showing activity summaries with detailed breakdowns of app usage, web browsing, and user-defined categories
246+
- **Query explorer:** Browser-based interface for writing, executing, and debugging queries with real-time results
247+
- **Activity browser:** Navigate through historical data with filtering by date ranges, applications, websites, and custom categories
248+
- **Raw data access:** View and browse individual events from all tracking buckets with detailed metadata
249+
- **Export functionality:** Export activity data in JSON format (individual buckets or complete datasets) via web interface or REST API
239250

240251
### Watchers
241252

0 commit comments

Comments
 (0)