frostfs-api/README.md
2020-04-10 09:25:00 +03:00

113 lines
2.7 KiB
Markdown

# NeoFS-API
NeoFS-API repository contains language-agnostic
[protocol buffers](https://developers.google.com/protocol-buffers) definitions
of neofs-node structures and services.
## Description
NeoFS-API repository is the basis for language-specific libraries, e.g.:
- [neofs-api-go](https://github.com/nspcc-dev/neofs-api-go)
- [neofs-api-csharp](https://github.com/nspcc-dev/neofs-api-csharp)
These libraries contain compiled protocol buffers code, defined in this
repository. Use them to integrate applications with NeoFS.
This repository contains:
- 12 protocol buffers packages,
- [auto-generated docs](proto-docs) for protocol buffers,
- [manually written docs](docs) for developers (to be done).
### Protocol packages
#### Accounting
Accounting package defines services and structures for balance request and
`cheque` operations.
See:
- [Accounting service](proto-docs/accounting.md#accounting.Accounting)
- [Withdraw service](proto-docs/accounting.md#accounting.Withdraw)
#### ACL
ACL package defines targets of access control rules.
#### Bootstrap
Bootstrap package defines bootstrap service that connects storage nodes
to the network.
See:
- [Bootstrap service](proto-docs/bootstrap.md#bootstrap.Bootstrap)
#### Container
Container package defines service and structure of containers. NeoFS stores
objects within the registered container according to a specified storage policy.
See:
- [Container service](proto-docs/container.md#container.Service)
#### Decimal
Decimal defines structure for encoding assets amount.
#### Object
Object is the storage unit in NeoFS. Object package defines structure of the
object and service requests.
See:
- [Object service](proto-docs/object.md#object.Service)
#### Query
Query package defines structure for object search requests.
#### Refs
Refs package defines identity types: object id, container id, etc.
#### Service
Service package defines utility structures for all public API requests:
TTL, request signature, etc.
#### Session
Session package defines service and structures to setup session between
the node and the client. Session token is required in some object service
requests. Node uses session private key to re-sign new objects and requests.
See:
- [Session service](proto-docs/session.md#session.Session)
#### State
State package defines service and structures for metrics gathering.
See:
- [Status service](proto-docs/state.md#state.Status)
#### StorageGroup
Storagegroup package defines structure that contains meta data for data audit.
This meta data stored as a header in the NeoFS object.
## License
This project is licensed under the Apache 2.0 License -
see the [LICENSE](LICENSE) file for details