Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/linksmart/thing-directory
Directory of Web of Things (WoT) Thing Descriptions. Maintained fork at https://github.com/TinyIoT/thing-directory
https://github.com/linksmart/thing-directory
tdd thing-description thing-description-directory w3c web-of-things wot
Last synced: 3 months ago
JSON representation
Directory of Web of Things (WoT) Thing Descriptions. Maintained fork at https://github.com/TinyIoT/thing-directory
- Host: GitHub
- URL: https://github.com/linksmart/thing-directory
- Owner: linksmart
- License: apache-2.0
- Archived: true
- Created: 2020-03-02T14:58:33.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-07-13T14:33:02.000Z (almost 2 years ago)
- Last Synced: 2024-01-25T04:54:56.151Z (5 months ago)
- Topics: tdd, thing-description, thing-description-directory, w3c, web-of-things, wot
- Language: Go
- Homepage:
- Size: 4.42 MB
- Stars: 20
- Watchers: 6
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-web-of-things - LinkSmart Thing Directory - Directory of Thing Description, compliant with the W3C WoT Discovery spec (Section / WoT Implementations)
README
# LinkSmart Thing Directory
[![Docker Pulls](https://img.shields.io/docker/pulls/linksmart/td.svg)](https://hub.docker.com/r/linksmart/td/tags)
[![GitHub tag (latest pre-release)](https://img.shields.io/github/tag-pre/linksmart/thing-directory.svg?label=pre-release)](https://github.com/linksmart/thing-directory/tags)
[![CICD](https://github.com/linksmart/thing-directory/workflows/CICD/badge.svg)](https://github.com/linksmart/thing-directory/actions?query=workflow:CICD)
[![DOI](https://joss.theoj.org/papers/10.21105/joss.03075/status.svg)](https://doi.org/10.21105/joss.03075)
This is an implementation of the [W3C WoT Thing Description Directory (TDD)](https://w3c.github.io/wot-discovery/), a registry of [Thing Descriptions](https://www.w3.org/TR/wot-thing-description/).## Getting Started
Visit the following pages to get started:
* [Deployment](https://github.com/linksmart/thing-directory/wiki/Deployment): How to deploy the software, as Docker container, Debian package, or platform-specific binary distributions
* [Configuration](https://github.com/linksmart/thing-directory/wiki/Configuration): How to configure the server software with JSON files and environment variables
* [API Documentation](https://linksmart.github.io/swagger-ui/dist/?url=https://raw.githubusercontent.com/linksmart/thing-directory/master/apidoc/openapi-spec.yml): How to interact with the networking APIs**Further documentation are available in the [wiki](https://github.com/linksmart/thing-directory/wiki)**.
## Features
* Service Discovery
* [DNS-SD registration](https://github.com/linksmart/thing-directory/wiki/Discovery-with-DNS-SD)
* [LinkSmart Service Catalog](https://github.com/linksmart/service-catalog) registration
* RESTful API
* [HTTP API](https://linksmart.github.io/swagger-ui/dist/?url=https://raw.githubusercontent.com/linksmart/thing-directory/master/apidoc/openapi-spec.yml)
* Thing Description (TD) CRUD, catalog, and validation
* XPath 3.0 and JSONPath [query languages](https://github.com/linksmart/thing-directory/wiki/Query-Language)
* TD validation with JSON Schema ([default](https://github.com/linksmart/thing-directory/blob/master/wot/wot_td_schema.json))
* Request [authentication](https://github.com/linksmart/go-sec/wiki/Authentication) and [authorization](https://github.com/linksmart/go-sec/wiki/Authorization)
* JSON-LD response format
* Persistent Storage
* LevelDB
* CI/CD ([Github Actions](https://github.com/linksmart/thing-directory/actions?query=workflow:CICD))
* Automated testing
* Automated builds and releases ([Docker images](https://hub.docker.com/r/linksmart/td/tags?page=1&ordering=last_updated), [binaries](https://github.com/linksmart/thing-directory/releases))## Development
The dependencies of this package are managed by [Go Modules](https://github.com/golang/go/wiki/Modules).Clone this repo:
```bash
git clone https://github.com/linksmart/thing-directory.git
cd thing-directory
```Compile from source:
```bash
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):
```bash
$ ./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):
```bash
$ ./thing-directory --conf=sample_conf/thing-directory.json
```To build and run together:
```bash
go run . --conf=sample_conf/thing-directory.json
```Test all packages (add `-v` flag for verbose results):
```bash
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.