FrostFS API Golang repository contains implementation of core FrostFS structures that can be used for integration with FrostFS.
sdk
Find a file
Evgenii Stratonikov 5e1c6a908f
All checks were successful
DCO action / DCO (pull_request) Successful in 41s
Tests and linters / Tests (1.22) (pull_request) Successful in 55s
Tests and linters / Tests (1.23) (pull_request) Successful in 57s
Tests and linters / Tests with -race (pull_request) Successful in 1m8s
Tests and linters / Lint (pull_request) Successful in 2m12s
[#111] protogen: Emit slice of messages without a pointer
```
goos: linux
goarch: amd64
pkg: git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
                                              │      old      │                 new                  │
                                              │    sec/op     │    sec/op     vs base                │
ObjectIDSlice/0_elements/to_grpc_message-8       3.193n ±  2%   3.242n ±  0%   +1.50% (p=0.034 n=10)
ObjectIDSlice/0_elements/from_grpc_message-8     3.197n ±  2%   3.343n ±  1%   +4.57% (p=0.000 n=10)
ObjectIDSlice/0_elements/marshal-8               5.666n ±  3%   5.642n ±  0%   -0.42% (p=0.000 n=10)
ObjectIDSlice/1_elements/to_grpc_message-8       53.10n ±  6%   29.78n ± 12%  -43.92% (p=0.000 n=10)
ObjectIDSlice/1_elements/from_grpc_message-8     28.99n ±  5%   29.77n ±  7%        ~ (p=0.165 n=10)
ObjectIDSlice/1_elements/marshal-8               49.08n ±  7%   50.72n ±  6%        ~ (p=0.218 n=10)
ObjectIDSlice/50_elements/to_grpc_message-8     1652.5n ±  7%   277.2n ±  1%  -83.22% (p=0.000 n=10)
ObjectIDSlice/50_elements/from_grpc_message-8    261.2n ± 11%   226.7n ± 15%  -13.19% (p=0.003 n=10)
ObjectIDSlice/50_elements/marshal-8              1.512µ ±  6%   1.514µ ±  6%        ~ (p=0.955 n=10)
geomean                                          52.15n         39.99n        -23.31%

                                              │      old       │                  new                   │
                                              │      B/op      │     B/op      vs base                  │
ObjectIDSlice/0_elements/to_grpc_message-8        0.000 ± 0%       0.000 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/0_elements/from_grpc_message-8      0.000 ± 0%       0.000 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/0_elements/marshal-8                0.000 ± 0%       0.000 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/1_elements/to_grpc_message-8        32.00 ± 0%       24.00 ± 0%  -25.00% (p=0.000 n=10)
ObjectIDSlice/1_elements/from_grpc_message-8      24.00 ± 0%       24.00 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/1_elements/marshal-8                48.00 ± 0%       48.00 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/50_elements/to_grpc_message-8     1.578Ki ± 0%     1.250Ki ± 0%  -20.79% (p=0.000 n=10)
ObjectIDSlice/50_elements/from_grpc_message-8   1.250Ki ± 0%     1.250Ki ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/50_elements/marshal-8             2.000Ki ± 0%     2.000Ki ± 0%        ~ (p=1.000 n=10) ¹
geomean                                                      ²                  -5.62%                ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                              │      old      │                 new                  │
                                              │   allocs/op   │ allocs/op   vs base                  │
ObjectIDSlice/0_elements/to_grpc_message-8       0.000 ± 0%     0.000 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/0_elements/from_grpc_message-8     0.000 ± 0%     0.000 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/0_elements/marshal-8               0.000 ± 0%     0.000 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/1_elements/to_grpc_message-8       2.000 ± 0%     1.000 ± 0%  -50.00% (p=0.000 n=10)
ObjectIDSlice/1_elements/from_grpc_message-8     1.000 ± 0%     1.000 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/1_elements/marshal-8               1.000 ± 0%     1.000 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/50_elements/to_grpc_message-8     51.000 ± 0%     1.000 ± 0%  -98.04% (p=0.000 n=10)
ObjectIDSlice/50_elements/from_grpc_message-8    1.000 ± 0%     1.000 ± 0%        ~ (p=1.000 n=10) ¹
ObjectIDSlice/50_elements/marshal-8              1.000 ± 0%     1.000 ± 0%        ~ (p=1.000 n=10) ¹
geomean                                                     ²               -40.18%                ²
¹ all samples are equal
² summaries must be >0 to compute geomean
```

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-08-28 11:53:08 +03:00
.forgejo/workflows [#1316] go.mod: Bump go version to 1.22 2024-08-21 17:22:56 +03:00
.github [#14] Add Issue Template 2023-03-23 12:19:35 +03:00
accounting [#108] protogen: Distinguish between empty and nil messages 2024-08-27 11:02:18 +03:00
acl [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
ape [#107] Regenerate proto files 2024-08-26 14:36:19 +03:00
apemanager [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
container [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
docs Move to frostfs-api 2022-12-12 17:40:48 +03:00
lock/grpc [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
netmap [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
object [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
refs [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
rpc [#109] rpc/message: Remove incorrect copypaste 2024-08-27 11:36:08 +03:00
session [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
signature [#97] signature: Add Patch messages to serviceMessageBody 2024-07-30 17:52:54 +03:00
status [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
tombstone [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
util [#111] protogen: Emit slice of messages without a pointer 2024-08-28 11:53:08 +03:00
.gitattributes Simplify Makefile 2020-09-18 11:25:32 +03:00
.gitignore [#101] Remove usage of folder vendor 2024-08-08 17:38:49 +03:00
.golangci.yml [#96] .golangci.yml: Fix deprecated config options 2024-07-29 15:45:01 +03:00
.pre-commit-config.yaml [#68] Makefile: Use gofumpt for formatting 2024-03-14 10:31:58 +03:00
CHANGELOG.md Release v2.16.0 2023-09-14 13:20:13 +03:00
CONTRIBUTING.md Rebranding 2022-12-09 13:41:35 +03:00
CREDITS.md Rebranding 2022-12-09 13:41:35 +03:00
go.mod [#1316] go.mod: Bump go version to 1.22 2024-08-21 17:22:56 +03:00
go.sum [#1316] go.mod: Bump go version to 1.22 2024-08-21 17:22:56 +03:00
LICENSE change license 2020-04-10 09:22:35 +03:00
Makefile [#107] Makefile: Generate standard protobuf bindings for tests 2024-08-26 14:36:19 +03:00
prepare.sh [#101] Fix make test 2024-08-09 09:35:25 +03:00
README.md Change logo 2023-01-08 00:00:59 +03:00

FrostFS

Low-level Golang API for FrostFS


Tests codecov Report GitHub release GitHub license

Overview

Go implementation of recent FrostFS API versions. For a more high-level SDK see FrostFS SDK.

Frostfs-Api compatibility

frostfs-api-go version supported frostfs-api versions
v2.14.x v2.14.0

Contributing

Feel free to contribute to this project after reading the contributing guidelines.

Before starting to work on a certain topic, create a new issue first, describing the feature/topic you are going to implement.

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details