docs(readme): initial version

It's still rather simple, but a basis for further improvements
This commit is contained in:
Sebastian Thiel
2015-03-13 17:49:20 +01:00
parent c0a2476058
commit 6800edb4dd

View File

@@ -1,40 +1,42 @@
This repository holds [mako][mako] scripts to generate all google APIs as described by the [google discovery service][api-discovery].
The generate source code of each google API can be found in the `gen` subdirectory. Each google API resides in it's own crate which can be used as any other crate.
To find a library of your interest, you might want to proceed looking at the [API documentation index][api-index].
# Project Features
* provide an idiomatic rust implementation for google APIs
* first-class documentation with cross-links and complete code-examples to increase ease-of-use
* support all features, including uploads and resumable uploads
* safety and resilience are built-in, allowing you to create highly available tools on top of it. For example, you can trigger retries for all operations that may temporarily fail, e.g. due to network outage.
* *(soon)* Feature-complete command line tool to interact with each API.
# Live-Development
[![Build Status](https://travis-ci.org/Byron/google-apis-rs.svg?branch=master)](https://travis-ci.org/Byron/google-apis-rs)
# TODO
All work done on the project is based on [github issues][issues], not only to track progress and show what's going on, but
to have a place to link screen-recordings to.
* Adjust readme to reflect what this project actually is.
Additionally, there is a development diary which serves as summary of major steps taken so far. As opposed to issue-screencasts,
it is not made live, but is authored and narrated, which should make it more accessible.
# Old youtube-specific readme
*The following is the previous youtube-specific writing, will have to think about how and if that should be integrated into the generated documentation.*
*Youtube* is a library written in Rust to help interacting with your youtube account.
For now, all functionality is geared towards allowing interruptible video uploads
and adjustments of video meta-data.
The library works using the builder pattern. If builders are instantiated, you will need to
provide the minimal information right off the bat. Further calls to the builder allow
to configure it. Some configuration will be in the form of callbacks, which allows you to
control internal loops or behaviour.
It's the goal of each builder to maximize the chances of a successful result, and it will
provide enough callbacks to be resilient against network errors, and authorization failures
which require the token to be refreshed.
You will need authorization to perform most of the operations implemented here - it can be obtained
and handled using the [yup-oauth2 library][oauth].
Click the image below to see the playlist with all project related content:
[![thumb][playlist-thumb]][playlist]
# License
The license of everything not explicitly under a different license are licensed as specified in `LICENSE.md`.
What follows is a list of other material that is licensed differently.
* **./etc/api/\*\*/*.json** are licensed under a [MIT-like google license][google-lic].
[oauth]: https://crates.io/crates/yup-oauth2
[google-lic]: https://github.com/google/google-api-go-client/blob/master/LICENSE
[api-discovery-video]: https://www.youtube.com/watch?v=lQbT1NrxpUo
[api-discovery]: https://developers.google.com/discovery/v1/using
[api-discovery]: https://developers.google.com/discovery
[mako]: http://www.makotemplates.org/
[api-index]: http://byron.github.io/google-apis-rs
[issues]: https://github.com/Byron/google-apis-rs/issues
[playlist]: https://www.youtube.com/playlist?list=PLMHbQxe1e9Mnnqj3Hs1hRDUXFEK-TgCnz
[playlist-thumb]: http://img.youtube.com/vi/aGXuGEl90Mo/0.jpg