Skip to content

Latest commit

 

History

History
251 lines (109 loc) · 11.7 KB

readme.md

File metadata and controls

251 lines (109 loc) · 11.7 KB

Already a Patron? skip past this section

Community backed

It is expected that all developers become a Patron to use NServiceBusExtensions. Go to licensing FAQ

Sponsors

Support this project by becoming a Sponsor. The company avatar will show up here with a website link. The avatar will also be added to all GitHub repositories under the NServiceBusExtensions organization.

Patrons

Thanks to all the backing developers. Support this project by becoming a patron.

Licensing/Patron FAQ

It is expected that all developers become a Patron to use any of these libraries.

Honesty System / Enforcement

It is an honesty system with no code or legal enforcement. When raising an issue or a pull request, the GitHub Id may be checked to ensure they are a patron, and that issue/PR may be closed without further examination. This process will depend on the issue quality, your circumstances, and the impact on the larger user base. If a individual or organization has no interest in the long term sustainability of the project, then they are legally free to ignore the honesty system.

Why charge for open source?

So what OSS license are projects using?

All projects are under the MIT License

Why not use a modified MIT license?

Using any OSS license in a modified form causes significant problems with adoption of tools. There is no simplified guidance on using modified licenses. For example they are not included in choose a license or tldr legal. It often forces an organization to obtain approval from a legal department. It means any consuming tools need to ensure that the modified license does not propagate in an undesirable way.

But shouldn't OSS be completely free and supported by the community through their contributions?

Yes in theory this is true, however the long term reality has shown this not to be the case. The vast majority of consumers of open source projects do not contribute enough to ensure those project survive. This results in a small core team spending large amounts of their own free time maintaining projects.

But it is MIT, can't I use it for free?

Yes all projects are under MIT and you can ignore the community backing honesty system and use these project for free.

Do I need to be a Patron to contribute a Pull Request?

Yes. You must be a Patron to be a user of the below NuGet packages. Contributing Pull Requests does not cancel this out. It may seem unfair to expect people both contribute PRs and also financially back this project. However it is important to remember the effort in reviewing and merging a PR is often similar to that of creating the PR. Also the project maintainers are committing to support that added code (feature or bug fix) for the life of the project.

Organization licensing

How to handle multiple developers

There are two options for an organization.

  1. Apply a multiplier to the Patron cost. The Patron tier has no upper bound on the monthly amount. This allows an organization with multiple developers to pay a single monthly price. For example: An organization with 5 developers would pay $25 per month, i.e. 5 x $5 per patron. An organization with 10 developers would pay $50 per month, i.e. 10 x $5 per patron and so on.
  2. Create an Open Collective organization A organization can Create an Open Collective organization and then allow their developers to draw on the funds from that organization. See FAQ for backers. This is the recommended option as it also opens up the opportunity for developers to select other projects they feel need support.

Do all developers in a organization need to become Patrons?

No. Only those coding against projects that directly, or indirectly, consume any of the NuGet packages listed below.

Can only one developer of an organization become a patron?

Yes, since the only point of (optional) enforcement is when an issue or PR is raised, then legally an organization can ignore the honesty system and route all issues and PRs though a single GitHub user account. However if a single GitHub user account is drawing on significant time to support, they may be requested to purchase some hourly support.

What about open source projects that consume/extend these libraries?

It is be expected that the core team of maintainers of any open source projects that consume/extend these libraries would become Patrons. Non core contributors do not need to become Patrons.

Do I need a license to use these libraries at runtime in production or testing environments?

No license is required on production systems.

Can I fork, re-use code, or start competing (possibly commercial) projects?

Yes.

What happens if I wrap one of these libraries in another library?

Consumers of that wrapper should also become Patrons.

Extensions

Logging

Add support for sending NServiceBus logging message through Serilog.

NuGet

Add support for NServiceBus to log to Microsoft.Extensions.Logging.

NuGet

Serializers

Add support for message serialization via Hyperion.

NuGet

Add support for message serialization via MessagePack-CSharp.

NuGet

Add support for message serialization via ProtoBufNet.

NuGet

Add support for message serialization via Google Protocol Buffers.

NuGet

Validation

Message validation using FluentValidation.

Nuget

Message validation using DataAnnotations.

NuGet

Attachments

An implementation of the claim check pattern against SQL server.

NuGet

An implementation of the claim check pattern against a network file share.

NuGet

Testing

Adds Verify support to verify NServiceBus Test Contexts.

NuGet

Misc

SQL Server Transport Native is a shim providing low-level access to the SQL Server Transport with no NServiceBus or SQL Server Transport reference required.

NuGet

SQL HTTP Passthrough provides a bridge between an HTTP stream (via JavaScript on a web page) and the SQL Server transport. It leverages SQL Transport - Native and SQL Attachments.

NuGet

Allows the dependency between handlers to be expressed via interfaces and the resulting order is derived at runtime.

NuGet

Selectively choose what message types should be sent to the Audit queue.

NuGet

Leverages the Newtonsoft Json.net extension API to encrypt/decrypt specific parts of messages at serialization time.

NuGet