FrostFS API Golang repository contains implementation of core FrostFS structures that can be used for integration with FrostFS.
 
 
 
Go to file
Evgenii Stratonikov 84daaf59ef [#376] refs: Replace []*ObjectID with []ObjectID
```
ObjectIDSlice/0_elements/to_grpc_message-8       5.64ns ± 2%    5.89ns ± 4%   +4.56%  (p=0.000 n=10+10)
ObjectIDSlice/0_elements/from_grpc_message-8     6.68ns ± 3%    6.81ns ± 8%     ~     (p=0.143 n=10+10)
ObjectIDSlice/0_elements/marshal-8               7.41ns ± 3%    7.91ns ± 4%   +6.63%  (p=0.000 n=10+10)
ObjectIDSlice/1_elements/to_grpc_message-8       69.8ns ± 3%    80.5ns ± 7%  +15.39%  (p=0.000 n=10+10)
ObjectIDSlice/1_elements/from_grpc_message-8     56.4ns ± 6%    34.7ns ± 5%  -38.55%  (p=0.000 n=10+9)
ObjectIDSlice/1_elements/marshal-8               68.4ns ± 4%    67.6ns ± 4%     ~     (p=0.404 n=10+10)
ObjectIDSlice/50_elements/to_grpc_message-8      2.52µs ± 7%    2.56µs ± 4%     ~     (p=0.315 n=10+9)
ObjectIDSlice/50_elements/from_grpc_message-8    1.83µs ± 8%    0.44µs ± 1%  -75.73%  (p=0.000 n=10+8)
ObjectIDSlice/50_elements/marshal-8              2.32µs ±17%    2.22µs ± 3%     ~     (p=0.247 n=10+10)

name                                           old alloc/op   new alloc/op   delta
ObjectIDSlice/0_elements/to_grpc_message-8        0.00B          0.00B          ~     (all equal)
ObjectIDSlice/0_elements/from_grpc_message-8      0.00B          0.00B          ~     (all equal)
ObjectIDSlice/0_elements/marshal-8                0.00B          0.00B          ~     (all equal)
ObjectIDSlice/1_elements/to_grpc_message-8        72.0B ± 0%     72.0B ± 0%     ~     (all equal)
ObjectIDSlice/1_elements/from_grpc_message-8      32.0B ± 0%     24.0B ± 0%  -25.00%  (p=0.000 n=10+10)
ObjectIDSlice/1_elements/marshal-8                48.0B ± 0%     48.0B ± 0%     ~     (all equal)
ObjectIDSlice/50_elements/to_grpc_message-8      3.62kB ± 0%    3.62kB ± 0%     ~     (all equal)
ObjectIDSlice/50_elements/from_grpc_message-8    1.62kB ± 0%    1.28kB ± 0%  -20.79%  (p=0.000 n=10+10)
ObjectIDSlice/50_elements/marshal-8              2.05kB ± 0%    2.05kB ± 0%     ~     (all equal)

name                                           old allocs/op  new allocs/op  delta
ObjectIDSlice/0_elements/to_grpc_message-8         0.00           0.00          ~     (all equal)
ObjectIDSlice/0_elements/from_grpc_message-8       0.00           0.00          ~     (all equal)
ObjectIDSlice/0_elements/marshal-8                 0.00           0.00          ~     (all equal)
ObjectIDSlice/1_elements/to_grpc_message-8         2.00 ± 0%      2.00 ± 0%     ~     (all equal)
ObjectIDSlice/1_elements/from_grpc_message-8       2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.000 n=10+10)
ObjectIDSlice/1_elements/marshal-8                 1.00 ± 0%      1.00 ± 0%     ~     (all equal)
ObjectIDSlice/50_elements/to_grpc_message-8        51.0 ± 0%      51.0 ± 0%     ~     (all equal)
ObjectIDSlice/50_elements/from_grpc_message-8      51.0 ± 0%       1.0 ± 0%  -98.04%  (p=0.000 n=10+10)
ObjectIDSlice/50_elements/marshal-8                1.00 ± 0%      1.00 ± 0%     ~     (all equal)
```

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
.github [#349] ci: Update linter 2021-10-07 11:00:37 +03:00
accounting [#371] Support recent changes in NeoFS API protocol 2022-02-25 10:24:07 +03:00
acl [#371] Support recent changes in NeoFS API protocol 2022-02-25 10:24:07 +03:00
audit [#376] refs: Replace []*ObjectID with []ObjectID 2022-03-15 12:19:49 +03:00
container [#380] Support changes in signature schemes 2022-03-02 16:49:50 +03:00
docs Update release instruction 2022-02-25 11:12:57 +03:00
lock/grpc [#371] Support recent changes in NeoFS API protocol 2022-02-25 10:24:07 +03:00
netmap [#371] Support recent changes in NeoFS API protocol 2022-02-25 10:24:07 +03:00
object [#376] refs: Replace []*ObjectID with []ObjectID 2022-03-15 12:19:49 +03:00
refs [#376] refs: Replace []*ObjectID with []ObjectID 2022-03-15 12:19:49 +03:00
reputation [#371] Support recent changes in NeoFS API protocol 2022-02-25 10:24:07 +03:00
rpc [#383] rpc/client: Export URI-parsing function 2022-03-10 19:16:42 +03:00
session Fix linter remarks 2022-02-25 11:12:57 +03:00
signature [#55] refs: Add Scheme field to Signature 2022-02-25 10:15:28 +03:00
status [#371] Support recent changes in NeoFS API protocol 2022-02-25 10:24:07 +03:00
storagegroup [#376] refs: Replace []*ObjectID with []ObjectID 2022-03-15 12:19:49 +03:00
subnet [#371] Support recent changes in NeoFS API protocol 2022-02-25 10:24:07 +03:00
tombstone [#376] refs: Replace []*ObjectID with []ObjectID 2022-03-15 12:19:49 +03:00
util [#380] Support changes in signature schemes 2022-03-02 16:49:50 +03:00
.gitattributes Simplify Makefile 2020-09-18 11:25:32 +03:00
.gitignore Simplify Makefile 2020-09-18 11:25:32 +03:00
.golangci.yml [#349] ci: Update linter 2021-10-07 11:00:37 +03:00
CHANGELOG.md Release v2.12.0 - Heuksando (흑산도, 黑山島) 2022-02-25 11:12:57 +03:00
CONTRIBUTING.md Minor typo fixes 2020-12-30 12:35:03 +03:00
CREDITS.md Update credits 2021-12-28 13:00:49 +03:00
LICENSE change license 2020-04-10 09:22:35 +03:00
Makefile [#364] Makefile: Remove deprecated -i flag 2021-12-02 16:27:25 +03:00
README.md Release v2.12.0 - Heuksando (흑산도, 黑山島) 2022-02-25 11:12:57 +03:00
go.mod Add `v2` version to go module name 2021-11-17 15:29:33 +03:00
go.sum Add `v2` version to go module name 2021-11-17 15:29:33 +03:00
prepare.sh [#361] Do not remove stable marshal test file after API recompile 2021-12-02 16:42:47 +03:00

README.md

NeoFS

Low-level Golang API for NeoFS


Tests codecov Report GitHub release GitHub license

Overview

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

NeoFS-API compatibility

neofs-api-go version supported NeoFS-API versions
< v1.20.0 (unsupported) up to v1.2.0
v1.20.x v2.0.2
v1.21.x v2.1.0
v1.22.x v2.2.0
v1.23.x v2.3.0
v1.24.x v2.4.0
v1.25.x v2.5.0
v1.26.x v2.6.0
v1.27.x v2.7.0
v1.28.x v2.8.0
v1.29.x v2.9.1
v1.30.x v2.10.0
v2.11.x v2.11.0
v2.12.x v2.12.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