# AutoRest The **AutoRest** tool generates client libraries for accessing RESTful web services. Input to *AutoRest* is a spec that describes the REST API using the [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) format. ## Support Policy AutoRest is an open source tool -- if you need assistance, first check the documentation. If you find a bug or need some help, feel free to submit an [issue](https://github.com/Azure/autorest/issues) **AutoRest will release a stable version on the second Wednesday of the month.** Using `npm` you can upgrade to the latest stable version of AutoRest: --- # Installing AutoRest Installing AutoRest on Windows, MacOS or Linux involves two steps: 1. __Install [Node.js](https://nodejs.org/en/)__ (10.15.x LTS HIGHLY RECOMENDED) > for more help, check out [Installing Node.JS on different platforms](./docs/developer/workstation.md#nodejs) 2. __Install AutoRest__ using `npm` ``` powershell # Depending on your configuration you may need to be elevated or root to run this. (on OSX/Linux use 'sudo' ) npm install -g autorest ``` ### Updating AutoRest To update AutoRest if you have previous versions installed, please run: ``` powershell autorest --latest ``` or ```powershell # Removes all other versions and installs the latest autorest --reset ``` For more information, run `autorest --help` ### Supported Platforms While AutoRest itself runs on NodeJS, some generators use the .NET Core 2.0 runtime, which is the most limiting factor. See [dotnet/core/release-notes/2.0/2.0-supported-os.md](https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0-supported-os.md) for a list of supported platforms. # Getting Started using AutoRest ![image](./docs/images/normal.png) Start by reading the documentation for using AutoRest: - [Managing AutoRest](./docs/managing-autorest.md) - shows how to get new updates to AutoRest and choose which version to use for code generation - [Generating a Client using AutoRest](./docs/examples/generating-a-client.md) - shows simple command line usage for generating a client library. - [Command Line Interface Documentation](./docs/user/command-line-interface.md) - explains common command line arguments - [Examples](./Samples) - full, walkthrough-style scenarios for using AutoRest # Developers ![image](./docs/images/glasses.png) Get yourself up and coding in AutoRest - [Developer Workstation Requirements](./.attic/developer/workstation.md) - what do you need to install to start working with the AutoRest code - [AutoRest Extensibility](./.attic/developer/architecture/AutoRest-extension.md) and [protocol](./.attic/developer/architecture/AutoRest-extension-protocol.md) documentation - [Working on AutoRest core](./.attic/developer/autorest-core.md) - compiling/testing AutoRest core using the build scripts - [Working on an AutoRest extension](./.attic/developer/autorest-extension.md) - creating and testing AutoRest extensions - [AutoRest repositories and packages](./docs/trampoline.md) - all maintained repositories and packages on one page Some related information: - [Validation Rules & Linting](https://github.com/Azure/azure-openapi-validator/blob/master/docs/readme.md) - about the validation rules in AutoRest - [Client Runtimes](./docs/developer/architecture/Autorest-and-Clientruntimes.md) - information about the client runtimes required for using code generated by AutoRest --- ### Code of Conduct This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.