base on Tye is a tool that makes developing, testing, and deploying microservices and distributed applications easier. Project Tye includes a local orchestrator to make developing microservices easier and the ability to deploy microservices to Kubernetes with minimal configuration. # Project Tye
Tye is a developer tool that makes developing, testing, and deploying microservices and distributed applications easier. Project Tye includes a local orchestrator to make developing microservices easier and the ability to deploy microservices to Kubernetes with minimal configuration.
Tye can:
- Simplify microservices development by making it easy to:
- Run many services with one command
- Use dependencies in containers
- Discover addresses of other services using simple conventions
- Deploy .NET applications to Kubernetes by:
- Automatically containerizing .NET applications
- Generating Kubernetes manifests with minimal knowledge or configuration
- Using the same conventions as development to keep it consistent
Want to learn more? Check out our [FAQ](docs/FAQ.md) or [documentation](docs/README.md).
## Current Status
Project Tye is an open source experiment at the moment. We are using this time to try radical ideas to improve microservices developer productivity and see what works.
We plan to do releases with new features roughly every 4 weeks.
For the duration of the experiment, consider every part of the tye experience to be volatile. We will frequently make additions and changes to features that seem polished. We welcome feedback from anyone who's willing to be an early-adopter with tye; the team wants to know what's working well, and what's missing to build a whole-package .NET microservices developer productivity suite.
---
[![Build Status](https://dnceng.visualstudio.com/public/_apis/build/status/dotnet/tye/dotnet-tye-ci-public?branchName=main)](https://dnceng.visualstudio.com/public/_build/latest?definitionId=796&branchName=main)
## Getting Started
See the getting started instructions and tutorials [here](/docs/getting_started.md).
## How to Engage, Contribute, and Give Feedback
Some of the best ways to contribute are to try things out, file issues, join in design conversations, and make pull-requests.
- Download our latest daily builds
- Try tutorials and working with your own projects
- Log issues if you find problems, or if you have suggestions.
- Log an issue if you have feedback you want to share with the team.
Check out the [contributing](/CONTRIBUTING.md) page to see the best places to log issues and start discussions.
Thank you for trying out Project Tye! We highly encourage you to provide feedback to help us continue to improve the tool, so we would love to learn more about your experience. Please let us know what you think by filling out our [survey](https://aka.ms/tyesurvey).
## Reporting security issues and bugs
Tye is an experimental project, and as such we expect all users to take responsibility for evaluating the security of their own applications.
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC)
[email protected]. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.
## .NET Foundation
Tye is a [.NET Foundation](https://www.dotnetfoundation.org/projects) project.
This project has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/) to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct).
General .NET OSS discussions: [.NET Foundation forums](https://forums.dotnetfoundation.org)
", Assign "at most 3 tags" to the expected json: {"id":"5018","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"