-
Notifications
You must be signed in to change notification settings - Fork 14
Comparison to other APIs
lokka30 edited this page Dec 11, 2021
·
24 revisions
Page Completion | Valid as of | Notes |
---|---|---|
🟢 100% | Pre-release | None |
- This page is written in our own opinion.
- Please let us know if you disagree with anything here. We can always edit this page, we wish for it to be accurate.
-
🟢 = good
,🟡 = okay
,🟠 = bad
,🔴 = terrible
. This is a score, not specifically an indicator on if a feature is included or not. For example, see Treasury's multi-world support comment.
Feature | Treasury | Vault | Comment |
---|---|---|---|
Adoption | ❓ | 🟢 | Treasury is brand new, so we have no idea. |
Documentation (Wiki & javadocs) | 🟢 | 🟡 | Treasury has a great degree of documentation so server owners and developers can understand how to use it. Vault's documentation is.. okay, there is a good amount of room for improvement. |
Time since release | 🔴 | 🟢 | Treasury: approx. early 2022. Vault: Oct 2011. |
Stability | ❓ | 🟢 | Treasury is currently in pre-release development, so we are unable to compare stability of the API. It will only be determined with time. |
Multi-platform | 🟢 | 🔴 | Vault is only operational on Bukkit, whilst Treasury's APIs are platform-independent. |
Quality support | 🟢 | 🔴 | Vault's has pretty much no support. You can e-mail the maintainer to ask basic things and expect a reply in a few year's time. |
Concurrency support | 🟢 | 🔴 | Treasury uses a specialized EconomySubscriber class which can also be converted into a CompletableFuture. Vault has no concurrency support whatsoever. Concurrency support is important as an economy plugin may need to make a query to a database - when completed synchronously in Vault, it will freeze the server until the request is completed. Database queries are not instantaneous due to possible load at the time and connection speed if it is ran on a different server. |
Willingness for change (relative) | 🟢 | 🔴 | If your proposed change to Vault breaks a plugin that hasn't been updated for 7 years, then forget it. Treasury will always strive to maintain some degree of legacy support, but we will not let it drag the project behind. |
Non-bloated APIs | 🟢 | 🟢 | Treasury and Vault are quite strict against having bloated APIs. |
Adoption of UUIDs | 🟢 | 🟠 | Vault still has deprecated APIs from years ago that people still decide to use which have player names instead of UUIDs. In addition, bank accounts are identified by name instead of UUID. Vault uses UUIDs through OfflinePlayer objects, but this can cause unnecessary server freezes whilst it needs to request data of a player from Mojang's servers. |
Bank accounts | 🟢 | 🟠 | Vault's bank accounts require an owner which is not suitable for all implementations. Vault's bank accounts also do not use UUIDs. reasury's bank accounts have none of these issues. |
Multi-currency | 🟢 | 🔴 | Vault does not offer any multi-currency support whatsoever. |
Code quality | 🟢 | 🟡 | See for yourself. |
Multi-world | 🟡 | 🟡 | Vault makes it optional to use their multi-world methods, which in essence, self-defeats the feature. Treasury started out with Multi-World support, but we removed it since we believe that it is better left in the hands of the economy provider. Treasury's historic multi-world support also brought about more confusion in using the API. We believe it is advantageous that Treasury does not have multi-world support for this reason. Multi-world economies are also difficult to manage and difficult for plugins to support. |
Well-designed EconomyResponse | 🟢 | 🟠 | Treasury has opted to build upon Vault's EconomyResponse by making it a generic class instead, significantly upgrading its capability. It also supplies better communication potential through the economy API by supplying a variety of reasons why a transaction was unsuccessful, other than a 'yes or no' result. Oh, and you don't have to use the 'success' or 'fail' as a 'yes' or 'no'.. for some reason Vault does that.. :) |
Transaction history | 🟢 | 🔴 | Vault does not offer this functionality. |