This is an implementation of the W3C Web of Things (WoT) Thing Description Directory (TDD), a registry of Thing Descriptions.
Visit the following pages to get started:
- Deployment: How to deploy the software, as Docker container, Debian package, or platform-specific binary distributions
- Configuration: How to configure the server software with JSON files and environment variables
- API Documentation: How to interact with the networking APIs
Further documentation are available in the wiki.
- Service Discovery
- RESTful API
- HTTP API
- Things API - TD creation, read, update (put/patch), deletion, and listing (pagination)
- Search API - JSONPath query language
- Events API
- TD validation with JSON Schema(s)
- Request authentication and authorization
- JSON-LD response format
- HTTP API
- Persistent Storage
- LevelDB
- CI/CD (Github Actions)
- Automated testing
- Automated builds and releases
Clone this repo:
git clone https://github.com/tinyiot/thing-directory.git
cd thing-directory
Compile from source:
go build
This will result in an executable named thing-directory
(linux/macOS) or thing-directory.exe
(windows).
Get the CLI arguments help (linux/macOS):
$ ./thing-directory -help
Usage of ./thing-directory:
-conf string
Configuration file path (default "conf/thing-directory.json")
-version
Print the API version
Run (linux/macOS):
$ ./thing-directory --conf=sample_conf/thing-directory.json
To build and run together:
go run . --conf=sample_conf/thing-directory.json
Test all packages (add -v
flag for verbose results):
go test ./...
Contributions are welcome.
Please fork, make your changes, and submit a pull request. For major changes, please open an issue first and discuss it with the other authors.