cosmos-sdk/x
Emmanuel T Odeke d0f64dff2c
perf: avoid unnecessary byteslice->string before fmt %s verb (#10364)
fmt.Printf or fmt.Sprintf already know how to convert a
byteslice into a string when building the output; we shouldn't
incur the unnecessary string(byteslice) conversion.
Using Bencher, we can see improvements such as
https://dashboard.github.orijtech.com/benchmark/3245b8e4bbbd44a597480319aaa4b9fe
which in independent experiments show:

* time/op (ns/op)
FormatIt-8	1.2µs ± 2%	1.1µs ± 10%	-11.77%	(p=0.000 n=10+9)

* speed (MB/s)
FormatIt-8	0.71GB/s ± 2%	0.80GB/s ± 9%	+13.59%	(p=0.000 n=10+9)

* allocs/op (B/op)
FormatIt-8	2.0kB ± 0%	1.1kB ± 0%	-45.62%	(p=0.000 n=10+10)

* allocs/op (count/op)
FormatIt-8	11 ± 0%	        9.0 ± 0%	-18.18%	(p=0.000 n=10+10)

Fixes #10363
2021-10-14 08:53:38 +00:00
..
auth refactor: move from io/ioutil to io and os package (#10341) 2021-10-13 07:38:22 +00:00
authz feat: authz add query all grants by granter (#10326) 2021-10-11 13:30:12 +00:00
bank feat!: Ensure InitGenesis returns with non-empty validator set (#9697) 2021-10-05 12:02:51 +00:00
capability perf: avoid unnecessary byteslice->string before fmt %s verb (#10364) 2021-10-14 08:53:38 +00:00
crisis docs: add crisis module client docs (#10304) 2021-10-06 11:31:20 +00:00
distribution refactor: move from io/ioutil to io and os package (#10341) 2021-10-13 07:38:22 +00:00
epoching refactor: Remove store type aliases (#10295) 2021-10-04 16:36:38 +00:00
evidence refactor: Remove store type aliases (#10295) 2021-10-04 16:36:38 +00:00
feegrant feat!: Ensure InitGenesis returns with non-empty validator set (#9697) 2021-10-05 12:02:51 +00:00
genutil perf: avoid unnecessary byteslice->string before fmt %s verb (#10364) 2021-10-14 08:53:38 +00:00
gov refactor: move from io/ioutil to io and os package (#10341) 2021-10-13 07:38:22 +00:00
group revert: Revert SIGN_MODE_DIRECT_JSON proto files (#10305) 2021-10-05 11:46:10 +00:00
mint docs: add client spec for x/mint (#10330) 2021-10-11 08:07:38 +00:00
nft feat: Introduce Cosmos Scalars (#9933) 2021-09-21 09:46:29 +00:00
params perf: avoid unnecessary byteslice->string before fmt %s verb (#10364) 2021-10-14 08:53:38 +00:00
simulation refactor: move from io/ioutil to io and os package (#10341) 2021-10-13 07:38:22 +00:00
slashing docs: add client spec for x/slashing (#10307) 2021-10-06 11:40:03 +00:00
staking docs: Added staking client docs. (#10306) 2021-10-12 10:49:38 +00:00
upgrade perf: avoid unnecessary byteslice->string before fmt %s verb (#10364) 2021-10-14 08:53:38 +00:00
README.md docs: fix module spec ordering (#9870) 2021-08-09 08:09:17 +00:00

List of Modules

Here are some production-grade modules that can be used in Cosmos SDK applications, along with their respective documentation:

  • Auth - Authentication of accounts and transactions for Cosmos SDK application.
  • Authz - Authorization for accounts to perform actions on behalf of other accounts.
  • Bank - Token transfer functionalities.
  • Capability - Object capability implementation.
  • Crisis - Halting the blockchain under certain circumstances (e.g. if an invariant is broken).
  • Distribution - Fee distribution, and staking token provision distribution.
  • Evidence - Evidence handling for double signing, misbehaviour, etc.
  • Feegrant - Grant fee allowances for executing transactions.
  • Governance - On-chain proposals and voting.
  • Mint - Creation of new units of staking token.
  • Params - Globally available parameter store.
  • Slashing - Validator punishment mechanisms.
  • Staking - Proof-of-Stake layer for public blockchains.
  • Upgrade - Software upgrades handling and coordination.

To learn more about the process of building modules, visit the building modules reference documentation.

IBC

The IBC module for the SDK has moved to its own repository.