Skip to content

Commit

Permalink
Merge pull request #1097 from mavlink/pr-improve-readme
Browse files Browse the repository at this point in the history
Improve readme
  • Loading branch information
julianoes committed May 13, 2020
2 parents 390bdc4 + b91b23e commit 62fa892
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 26 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
@@ -1,4 +1,4 @@
name: C/C++ CI
name: Build and Test

on:
push:
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.md
@@ -1,4 +1,4 @@
Copyright (c) 2016, PX4 Development Team
Copyright (c) 2016-2020, PX4 Development Team
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Expand Down
45 changes: 21 additions & 24 deletions README.md
@@ -1,6 +1,6 @@
<img alt="MAVSDK" src="https://mavsdk.mavlink.io/develop/assets/site/sdk_logo_full.png" width="400">

[![travis-ci build status](https://travis-ci.org/mavlink/MAVSDK.svg?branch=develop)](https://travis-ci.org/mavlink/MAVSDK)
[![GitHub Actions Status](https://github.com/mavlink/MAVSDK/workflows/Build%20and%20Test/badge.svg?branch=develop)](https://github.com/mavlink/MAVSDK/actions?query=branch%3Adevelop)
[![Coverage Status](https://coveralls.io/repos/github/mavlink/MAVSDK/badge.svg?branch=develop)](https://coveralls.io/github/mavlink/MAVSDK?branch=develop)

## Description
Expand All @@ -9,46 +9,43 @@
It aims to be:
- Easy to use with a simple API supporting both synchronous (blocking) API calls and asynchronous API calls using callbacks.
- Fast and lightweight.
- Cross-platform (Linux, Mac, Windows, iOS, Android).
- Cross-platform (Linux, macOS, Windows, iOS, Android).
- Extensible (using compile-time plugins).
- Fully compliant with the MAVLink common microservices standard/definitions.
- Fully compliant with the MAVLink common standard/definitions.

The core library is written in C++ and is used as the common "backend" to auto-generated front end libraries for different programming languages. The generated libraries share similar APIs (because they are autogenerated from a common interface) but follow idiomatic patterns expected by end users (for example, the Python library is installed from PyPi using *pip*, and includes everything you need to get up and running).
In order to support multiple programming languages, MAVSDK implements a gRPC server in C++ which allows clients in different programming languages to connect to. The API is defined by the proto IDL ([proto files](https://github.com/mavlink/MAVSDK-Proto/tree/master/protos)).
This architecture allows the clients to be implemented in idiomatic patterns, so using the tooling and syntax expected by end users. For example, the Python library can be installed from PyPi using `pip`.

This repo contains the source code for the C++ core.
Other important repos include:
- [MAVSDK-Proto](https://github.com/mavlink/MAVSDK-Proto) - Collection of proto files used by gRPC in MAVSDK (common interface definitions)
- [MAVSDK-Python](https://github.com/mavlink/MAVSDK-Python) - MAVSDK client for Python
- [MAVSDK-Swift](https://github.com/mavlink/MAVSDK-Swift) - MAVSDK client for Swift.
- [MAVSDK-Java](https://github.com/mavlink/MAVSDK-Java) - MAVSDK client for Java.
- [MAVSDK-JavaScript](https://github.com/mavlink/MAVSDK-JavaScript) - JS Wrapper for MAVSDK using grpc-web to generate static http client compatible with Envoy Proxy
- [Other repos](https://github.com/mavlink?q=MAVSDK) - Docs, examples, etc.


## Status

- C++ core library (2016). Reliable and stable - used in production.
- MAVSDK-Swift (2018): Reliable and stable - used in production.
- MAVSDK-Python (2019): First PyPi release 2019.
- MAVSDK-Java (2019): Prototype.
- MAVSDK-JavaScript (2019). Proof of concept.
The MAVSDK C++ part consists of:
- The [core library](https://github.com/mavlink/MAVSDK/tree/develop/src/core) implementing the basic MAVLink communication.
- The [plugin libraries](https://github.com/mavlink/MAVSDK/tree/develop/src/plugins) implementing the MAVLink communication specific to a feature.
- The [mavsdk_server](https://github.com/mavlink/MAVSDK/tree/develop/src/backend) implementing the gRPC server for the language clients.

## Repos

- [MAVSDK](https://github.com/mavlink/MAVSDK) - this repo containing the source code for the C++ core.
- [MAVSDK-Proto](https://github.com/mavlink/MAVSDK-Proto) - Common interface definitions for API specified as proto files used by gRPC between language clients and mavsdk_server.
- [MAVSDK-Python](https://github.com/mavlink/MAVSDK-Python) - MAVSDK client for Python (first released on Pypi 2019).
- [MAVSDK-Swift](https://github.com/mavlink/MAVSDK-Swift) - MAVSDK client for Swift (used in production, first released 2018).
- [MAVSDK-Java](https://github.com/mavlink/MAVSDK-Java) - MAVSDK client for Java (first released on MavenCentral in 2019).
- [MAVSDK-JavaScript](https://github.com/mavlink/MAVSDK-JavaScript) - MAVSDK client in JavaScript (proof of concept, 2019).
- [MAVSDK-Rust](https://github.com/mavlink/MAVSDK-Rust) - MAVSDK client for Rust (proof of concept, 2019).
- [MAVSDK-CSharp](https://github.com/mavlink/MAVSDK-CSharp) - MAVSDK client for CSharp (proof of concept, 2019).
- [Other Repos](https://github.com/mavlink?q=MAVSDK) - Docs, examples, etc.

## Docs (Build instructions etc.)

Instructions for how to use the C++ library can be found in the [SDK Guide](https://mavsdk.mavlink.io/develop/en/) (links to other programming languages can be found from the documentation sidebar).
Instructions for how to use the C++ library can be found in the [MAVSDK docs](https://mavsdk.mavlink.io/develop/en/) (links to other programming languages can be found from the documentation sidebar).

Quick Links:

- [QuickStart](https://mavsdk.mavlink.io/develop/en/cpp/#getting-started)
- [C++ API Overview](https://mavsdk.mavlink.io/develop/en/cpp/#api-overview)
- [API Reference](https://mavsdk.mavlink.io/develop/en/api_reference/)
- [Building the Library](https://mavsdk.mavlink.io/develop/en/contributing/build.html)
- [Examples](https://mavsdk.mavlink.io/develop/en/examples/)
- [API Reference](https://mavsdk.mavlink.io/develop/en/api_reference/)
- [FAQ](https://mavsdk.mavlink.io/develop/en/getting_started/faq.html)


## License

This project is licensed under the permissive BSD 3-clause, see [LICENSE.md](LICENSE.md).

0 comments on commit 62fa892

Please sign in to comment.