All Projects → infostellarinc → stellarstation-api

infostellarinc / stellarstation-api

Licence: Apache-2.0 license
The API definition for StellarStation.

Programming Languages

Mako
254 projects
kotlin
9241 projects
java
68154 projects - #9 most used programming language
python
139335 projects - #7 most used programming language
go
31211 projects - #10 most used programming language
shell
77523 projects
CMake
9771 projects

Projects that are alternatives of or similar to stellarstation-api

JavaSteam
Java library that provides an interface to directly interact with Valve's Steam servers.
Stars: ✭ 70 (+218.18%)
Mutual labels:  protobuf
sisyphus-js
Sisyphus customized protobuf and gRPC runtime and code generator for JavaScript/TypeScript
Stars: ✭ 19 (-13.64%)
Mutual labels:  protobuf
rules proto grpc
Bazel rules for building Protobuf and gRPC code and libraries from proto_library targets
Stars: ✭ 201 (+813.64%)
Mutual labels:  protobuf
SS3D
Space Station 3D, another remake of SS13, but with an extra D.
Stars: ✭ 180 (+718.18%)
Mutual labels:  space
multicode
💱 Decode bits, bytes, hex, base64 and protobuf recursively with a single command
Stars: ✭ 16 (-27.27%)
Mutual labels:  protobuf
molch
An implementation of the axolotl ratchet based on libsodium.
Stars: ✭ 24 (+9.09%)
Mutual labels:  protobuf
Play Store Api
Google Play Store protobuf API wrapper in java
Stars: ✭ 249 (+1031.82%)
Mutual labels:  protobuf
MicroServicePractice
微服务实践的demo
Stars: ✭ 40 (+81.82%)
Mutual labels:  protobuf
GameTracking-HalfLifeAlyx
📥 Game Tracker: Half-Life: Alyx
Stars: ✭ 24 (+9.09%)
Mutual labels:  protobuf
SpaceX
PowerShell module to interact with api.spacexdata.com
Stars: ✭ 25 (+13.64%)
Mutual labels:  space
golang-example-app
Example application
Stars: ✭ 138 (+527.27%)
Mutual labels:  protobuf
go-chat
go-chat.使用Go基于WebSocket开发的web聊天应用。单聊,群聊。文字,图片,语音,视频消息,屏幕共享,剪切板图片,基于WebRTC的P2P语音通话,视频聊天。
Stars: ✭ 516 (+2245.45%)
Mutual labels:  protobuf
protokit
A starter kit for building protoc plugins. Rather than write your own, you can just use an existing one.
Stars: ✭ 69 (+213.64%)
Mutual labels:  protobuf
flyteidl
Specification of the IR for Flyte workflows and tasks. Also Interfaces for all backend services. https://docs.flyte.org/projects/flyteidl/en/stable/
Stars: ✭ 27 (+22.73%)
Mutual labels:  protobuf
nuu
SciFi-MMORPG-2d-Scrolling-Action-Trade-Adventure
Stars: ✭ 17 (-22.73%)
Mutual labels:  space
yogstation-2017-
Yogstation13's master code source. [OLD - GO TO https://github.com/yogstation13/Yogstation-TG FOR THE NEW VERSION]
Stars: ✭ 39 (+77.27%)
Mutual labels:  space
awesome-spacehackers
A curated list of aerospace/space related data and code resources for a community of independent hackers dedicated to furthering humanity's knowledge of the universe through open collaboration.
Stars: ✭ 36 (+63.64%)
Mutual labels:  space
j2cl-protobuf
Protocol Buffers implementation for J2CL
Stars: ✭ 23 (+4.55%)
Mutual labels:  protobuf
protoc-gen-persist
GRPC SQL and Spanner persistence layer
Stars: ✭ 60 (+172.73%)
Mutual labels:  protobuf
Meshtastic-protobufs
Protobuf definitions for the Meshtastic project
Stars: ✭ 32 (+45.45%)
Mutual labels:  protobuf

StellarStation API

The public API definition for StellarStation and supported client libraries / helpers.

Feel free to send PRs to improve documentation when things are unclear or file issues with questions on usage.

Usage

The StellarStation API is based on gRPC. An API client can be written in any language supported by gRPC by following one of the language-specific guides here.

The main protocol definition used to generate language specific stub code is here.

Language-specific documentation:

When using proto files from this repository directly in client code, make sure to only use tagged releases. Using proto files from any non-tagged revision will likely not work correctly or maintain backwards compatibility.

The API follows semantic versioning - any breaking, backwards incompatible change will be made while increasing the major version.

Java

We provide precompiled client stubs for Java. Java users can just add a dependency on the stubs and don't need to compile the protocol into code themselves.

Gradle users should add the stellarstation-api artifact to their dependencies, e.g.,

dependencies {
    compile 'com.stellarstation.api:stellarstation-api:0.13.0'
}

Maven users would add to their pom.xml

<dependencies>
  <dependency>
    <groupId>com.stellarstation.api</groupId>
    <artifactId>stellarstation-api</artifactId>
    <version>0.13.0</version>
  </dependency>
</dependencies>

A full example of a Java API client can be found here. You can also find tutorials to start your own Java client here.

We publish SNAPSHOT builds to https://oss.sonatype.org/content/repositories/snapshots for access to preview features. The same caveats as using non-tagged releases applies - not all functions in SNAPSHOT builds may be implemented yet and there is no guarantee of backwards compatibility for SNAPSHOT builds. It is generally not recommended to use SNAPSHOT builds without first consulting with your StellarStation rep.

Note for Alpine Linux users

For anyone trying to use the Java API client in an Alpine Linux container, they will find it doesn't work due to a limitation of gRPC with Java 8. There are many ways to work around this, such as using jetty-alpn or installing a version of Java 9+, but our recommendation for Java 8 users is to use distroless, which is similarly compact but will work fine with gRPC.

Python

We provide precompiled client stubs for Python. Python users can install them with pip.

$  pip install --upgrade stellarstation

A full example of a Python API client can be found here.

Go

We provide precompiled client stubs for Go, found here.

import stellarstation "github.com/infostellarinc/go-stellarstation/api/v1"

NodeJS

We provide precompiled client stubs for NodeJS. NodeJS users can install them with npm.

$ npm install @infostellarinc/stellarstation-api

Authentication

Authentication to the StellarStation API is done using JWT bearer tokens (https://jwt.io). When initializing an API client, make sure to register call credentials using the private key downloaded from the StellarStation Console. Details for registering call credentials on a gRPC stub can be found here. Note that if the key has been revoked on the console, it will not be usable to authenticate with the API.

Java

For Java, the grpc-auth and google-auth-library-oauth2-http libraries can be used to easily setup authentication of an API client.

// Load the private key downloaded from the StellarStation Console.
ServiceAccountJwtAccessCredentials credentials =
    ServiceAccountJwtAccessCredentials.fromStream(
        Resources.getResource("stellarstation-private-key.json").openStream(),
        URI.create("https://api.stellarstation.com"));

// Setup the gRPC client.
ManagedChannel channel =
    ManagedChannelBuilder.forAddress("api.stellarstation.com", 443)
        .build();
StellarStationServiceStub client =
    StellarStationServiceGrpc.newStub(channel)
        .withCallCredentials(MoreCallCredentials.from(credentials));

Python

google-auth for Python can be used for authentication of an API client.

# Load the private key downloaded from the StellarStation Console.
credentials = google_auth_jwt.Credentials.from_service_account_file(
  'stellarstation-private-key.json',
  audience='https://api.stellarstation.com')

# Setup the gRPC client.
jwt_creds = google_auth_jwt.OnDemandCredentials.from_signing_credentials(
  credentials)
channel = google_auth_transport_grpc.secure_authorized_channel(
  jwt_creds, None, 'api.stellarstation.com:443')
client = stellarstation_pb2_grpc.StellarStationServiceStub(channel)

Other languages

Other languages have similar methods for loading Service Account JWT Access Credentials. For example,

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].