This client is the defacto client for submitting blobs to NEAR.
These crates allow a client to interact with the blob store.
It can be treated as a "black box", where blobs go in, and
[transaction_id ++ commitment] emerges.
da-rpc crate is the rust client, which anyone can use if they prefer rust in their application.
The responsibility of this client is to provide a simple interface for interacting with NEAR DA.
da-rpc-sys crate is the FFI client binding for use by non-rust applications. This calls through to
da-rpc to interact with the blob store, with some additional black box functionality for dealing with pointers wrangling and such.
da-rpc-go crate is the go client bindings for use by non-rust applications, and this calls through to
da-rpc-sys, which provides another application-level layer for easy interaction with the bindings.
The below diagrams outline how a rollup will interact with DA depending on their architecture.
Golang, or anything CFFI compatible
This diagram outlines how rollups written in golang would interact with the go rpc client.