blob: 6c3f61abf6ac2213ccf198bcef4ea7f69cd6b871 [file] [log] [blame] [view]
Johan Euphrosine5fe0ac02016-03-18 23:58:17 -07001# libweave provider examples
2
3This directory contains example implementations of `weave` system providers.
4
5## Providers
Johan Euphrosine5fe0ac02016-03-18 23:58:17 -07006
Mike Colagrosso8ee0c1e2016-04-07 14:04:01 -06007- `avahi_client.cc`
8
9 - implements: `weave::providerDnsServiceDiscovery`
10 - build-depends: libavahi-client
11 - run-depends: `avahi-daemon`
12
13- `bluez_client.cc`
14
15 - not-implemented
16
17- `curl_http_client.cc`
18
19 - implements: `weave::provider::HttpClient`
20 - build-depends: libcurl
21
22- `event_http_server.cc`
23
24 - implements: `weave::provider::HttpServer`
25 - build-depends: libevhtp
26
27- `event_network.cc`
28
29 - implements: `weave::provider::Network`
30 - build-depends: libevent
31
32- `event_task_runner.cc`
33
34 - implements: `weave::provider::TaskRunner`
35 - build-depends: libevent
36
37- `file_config_store.cc`
38
39 - implements: `weave::provider::ConfigStore`
40
41- `wifi_manager.cc`
42
43 - implements: `weave::provider::Wifi`
44 - build-depends: `weave::examples::EventNetworkImpl`
45 - run-depends: `network-manager`, `dnsmasq`, `hostapd`
46
47## Note
48
49- The example providers are based on `libevent` and should be portable between
50 most GNU/Linux distributions.
51- `weave::examples::WifiImpl` currently shells out to system command tools
52 like `nmcli`, `dnsmasq`, `ifconfig` and `hostpad`.