-
Notifications
You must be signed in to change notification settings - Fork 168
Home
- Introduction
- Project Repositories
- Releases
- Release Types
- Getting Started
- Getting the Code
- Contributing
- Governance Model
- Licenses
Steeltoe is an open-source project aimed at developing cloud-native .NET microservice applications. This project provides libraries that follow similar development patterns from well-known and proven microservice libraries like Netflix OSS, Spring Cloud and others.
Steeltoe libraries are built on top of .NET APIs.
- Steeltoe 4.x requires .NET 8 or higher.
- Steeltoe 3.x requires .NET Core 3.1 or higher.
- Steeltoe 2.x requires .NET Framework 4.5.2 or higher.
Today, most Steeltoe components work in a stand-alone environment, as well as on cloud platforms (Kubernetes and Cloud Foundry).
Steeltoe components are built for .NET developers to quickly leverage some of the basic patterns typically found in highly scalable and resilient distributed applications. Key features include:
- External (optionally encrypted) configuration using Spring Cloud Config Server
- Service discovery with Netflix Eureka and HashiCorp Consul
- Management endpoints (compatible with actuators), providing system info (such as versions, configuration, service container contents, mapped routes and HTTP traffic), heap/thread dumps, health checks, exporting metrics to Prometheus, and changing log levels at runtime.
- Connectivity to databases (such as SQL Server/Azure SQL, Cosmos DB, MongoDB, Redis, RabbitMQ, PostgreSQL, and MySQL), including support for Entity Framework Core
- Single sign-on, JWT and Certificate auth with Cloud Foundry
Steeltoe is freely available for production application usage today. Be sure to visit the official Steeltoe site.
Steeltoe is fully open-source and can be found under the SteeltoeOSS organization on GitHub.
These are located in the Steeltoe repository:
- Configuration - configuration providers that extend the reach of .NET Configuration services
- Common - common packages used by other Steeltoe components
- Connectors - simplify the process of configuring and using back-end services locally and in the cloud
- Discovery - register and discover services locally and in the cloud
- Logging - view and change minimum log levels at runtime
- Management - monitoring and management endpoints for web applications
- Security - simplify integration of security services provided by the cloud platform
- Samples - our collection of samples, used as a reference for .NET application development with Steeltoe
- Documentation - the source for the Steeltoe.io website
-
Initializr - quickly create a new .NET project that uses Steeltoe libraries
- InitializrWeb - the Initializr Web UI (based on start.spring.io)
- InitializrService - the main Initializr API
- InitializrConfigServer - the Spring Cloud Config Server that powers Initializr
- InitializrConfig - configuration for InitializrConfigServer
- NetCoreToolService - web API for creating projects generated by the .NET CLI with NetCoreToolTemplates
- NetCoreToolTemplates - .NET project templates, for use with Initializr, the .NET CLI and IDEs
- Dockerfiles - dockerfiles and pipelines for producing container images to be used with Steeltoe samples and for Steeltoe development
- Schema - Generates the JSON configuration schema that provides auto-completion in appsettings.json
Steeltoe releases are listed in the Steeltoe repository and are available on NuGet.org. For ongoing work, see the issue milestones or access pre-release packages.
- Beta (for example: beta1, beta2 ...) A beta is a release that contains a subset of the full features planned for a release. Beta releases allow significant changes to be tested earlier in the release cycle. A beta release is not meant for production environments.
- Release Candidate (for example: rc1, rc2, ...) A release candidate contains a full feature set and is available to the community for finding any last-minute major issues before the GA version is released. There could still be source code changes to fix defects, changes to documentation, and test cases, but these releases are generally considered production-grade and (until a GA release is available) their usage is supported in production environments.
- General Availability (GA) This is the full-featured and fully tested release, available to the public for use in production environments.
- Follow any "Get Started" link on the Steeltoe site
- Review, run, and modify the extensive collection of Samples available on GitHub
- To get down into the details of any Steeltoe project, read the documentation
The Steeltoe project welcomes contributions on GitHub both by filing issues and through PRs. You are also welcome to join our discussions on Slack
Check out the contributing guidelines page to see how you can get involved and contribute to Steeltoe.
Also, its worth noting the Steeltoe project has adopted the code of conduct defined by the Contributor Covenant. If you'd like more information, see the .NET Foundation Code of Conduct write-up.
The development of the next Steeltoe version occurs in the main
branch of the Steeltoe repository.
The source code for released versions can be found by their git tag.
For each released major version, a branch is available that contains the latest changes for that version. For example: 2.x
, 3.x
, 4.x
.
Similar branches exist in other repositories. For example, the main
branch in Samples builds against the development NuGet feed, which is populated from the Steeltoe main
branch. In contrast, its 2.x
, 3.x
and 4.x
branches build against the latest related Steeltoe version on nuget.org.
Steeltoe components can be built from source with a recent version of the .NET SDK on Windows, Linux or macOS. Any IDE that supports .NET is expected to work. Core contributors regularly use Visual Studio, Visual Studio Code, and JetBrains Rider. Visual Studio Solution Filter (.slnf
) files are provided for each component, along with a single .sln
file that contains all components.
Running the integration tests requires Config Server and Eureka to be running. See here for how to start them.
As a member of the .NET Foundation, the Steeltoe project has adopted a project governance model in line with the recommendations made by the Foundation.
The Steeltoe project uses the Apache License Version 2.0 license for all of its code. See the contribution licensing document for more details.