frostfs-api/README.md

113 lines
2.7 KiB
Markdown
Raw Normal View History

# NeoFS-API
2020-01-30 11:41:24 +00:00
NeoFS-API repository contains language-agnostic
[protocol buffers](https://developers.google.com/protocol-buffers) definitions
of neofs-node structures and services.
2020-01-30 11:41:24 +00:00
## Description
NeoFS-API repository is the basis for language-specific libraries, e.g.:
2020-01-30 11:41:24 +00:00
- [neofs-api-go](https://github.com/nspcc-dev/neofs-api-go)
- [neofs-api-csharp](https://github.com/nspcc-dev/neofs-api-csharp)
2020-01-30 11:41:24 +00:00
These libraries contain compiled protocol buffers code, defined in this
repository. Use them to integrate applications with NeoFS.
2020-01-30 11:41:24 +00:00
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:
2020-01-30 11:41:24 +00:00
- [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.
2020-01-30 11:41:24 +00:00
#### Bootstrap
2020-01-30 11:41:24 +00:00
Bootstrap package defines bootstrap service that connects storage nodes
to the network.
2020-01-30 11:41:24 +00:00
See:
2020-01-30 11:41:24 +00:00
- [Bootstrap service](proto-docs/bootstrap.md#bootstrap.Bootstrap)
2020-01-30 11:41:24 +00:00
#### Container
2020-01-30 11:41:24 +00:00
Container package defines service and structure of containers. NeoFS stores
objects within the registered container according to a specified storage policy.
2020-01-30 11:41:24 +00:00
See:
2020-01-30 11:41:24 +00:00
- [Container service](proto-docs/container.md#container.Service)
#### Decimal
Decimal defines structure for encoding assets amount.
#### Object
2020-01-30 11:41:24 +00:00
Object is the storage unit in NeoFS. Object package defines structure of the
object and service requests.
2020-01-30 11:41:24 +00:00
See:
2020-01-30 11:41:24 +00:00
- [Object service](proto-docs/object.md#object.Service)
#### Query
2020-01-30 11:41:24 +00:00
Query package defines structure for object search requests.
#### Refs
2020-01-30 11:41:24 +00:00
Refs package defines identity types: object id, container id, etc.
2020-01-30 11:41:24 +00:00
#### Service
2020-01-30 11:41:24 +00:00
Service package defines utility structures for all public API requests:
TTL, request signature, etc.
2020-01-30 11:41:24 +00:00
#### Session
2020-01-30 11:41:24 +00:00
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:
2020-01-30 11:41:24 +00:00
- [Session service](proto-docs/session.md#session.Session)
#### State
2020-01-30 11:41:24 +00:00
State package defines service and structures for metrics gathering.
See:
2020-01-30 11:41:24 +00:00
- [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.
2020-01-30 11:41:24 +00:00
## License
This project is licensed under the GPLv3 License -
see the [LICENSE.md](LICENSE.md) file for details