LinkSmart Thing Directory
This is an implementation of the W3C WoT Thing Description Directory (TDD), a registry of Thing Descriptions.
Getting Started
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.
Features
- Service Discovery
- RESTful API
- Persistent Storage
- CI/CD (Github Actions)
Development
The dependencies of this package are managed by Go Modules.
Clone this repo:
git clone https://github.com/linksmart/thing-directory.git
cd thing-directory
Compile from source:
go build
This will result in an executable called thing-directory
(linux/macOS) or thing-directory.exe
(windows).
Copy sample configuration files for server and JSON Schema into conf
directory:
mkdir -p conf
cp sample_conf/thing-directory.json wot/wot_td_schema.json conf
conf
is the default directory for configuration files. This can be changed with CLI arguments.
Get the CLI argument help (linux/macOS):
$ ./thing-directory -help
Usage of ./thing-directory:
-conf string
Configuration file path (default "conf/thing-directory.json")
-schema string
WoT Thing Description schema file path (default "conf/wot_td_schema.json")
-version
Print the API version
Run (linux/macOS):
$ ./thing-directory
To build and run together:
go run .
Test all packages (add -v
flag for verbose results):
go test ./...
Contributing
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.