https://github.com/Scetrov/FrontierSharp
C# / .NET API Clients for EVE Frontier — API client for the static data exposed by CCPs HTTP API plus a HTTP Client tuned to the specific API design patterns implemented by CCP.
https://github.com/Scetrov/FrontierSharp
api data eve-frontier static-data
Last synced: 4 days ago
JSON representation
C# / .NET API Clients for EVE Frontier — API client for the static data exposed by CCPs HTTP API plus a HTTP Client tuned to the specific API design patterns implemented by CCP.
- Host: GitHub
- URL: https://github.com/Scetrov/FrontierSharp
- Owner: Scetrov
- License: mit
- Created: 2025-03-26T22:16:40.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-05-21T20:45:49.000Z (13 days ago)
- Last Synced: 2026-05-22T03:59:56.595Z (13 days ago)
- Topics: api, data, eve-frontier, static-data
- Language: C#
- Homepage: https://www.nuget.org/packages/FrontierSharp.WorldApi
- Size: 3.11 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-eve-frontier - Scetrov/FrontierSharp
README
# FrontierSharp
     
FrontierSharp is a .NET library that provides access to EVE Frontier data through both the World API and Sui GraphQL.
It includes API clients and a command-line tool for interacting with official and third-party services.
## Table of Contents
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [API Client](#api-client)
- [Command-Line Tool](#command-line-tool)
- [Configuration](#configuration)
- [Contributing](#contributing)
- [License](#license)
## Features
- Access to World API data such as tribes, solar systems, and types,
- Access to Sui GraphQL data such as killmails, characters, and assemblies,
- Polling-based assembly watchers for reacting to on-chain assembly changes,
- Command-line interface for easy interaction from the prompt.
## Installation
### NuGet Packages
You can install the FrontierSharp packages via NuGet:
```sh
dotnet add package FrontierSharp.WorldApi
dotnet add package FrontierSharp.SuiClient
```
## Usage
### API Client
#### World API Client
FrontierShip is Dependency Injection ready, so all you need to do to add it to an existing project is install the NuGet
packages and configure the World API client, for example:
```csharp
services.AddHttpClient();
services.AddFusionCache().AsHybridCache();
services.AddKeyedSingleton(nameof(WorldApiClient))
.Configure(options => {
options.BaseUri = "https://blockchain-gateway-stillness.live.tech.evefrontier.com";
options.HttpClientName = nameof(WorldApiClient);
});
services.AddSingleton();
```
#### Sui Client
`FrontierSharp.SuiClient` exposes snapshot queries such as `GetAllAssembliesAsync()` and a polling-based watcher API for
subscribing to assembly changes.
- Sui client docs: [`src/FrontierSharp.SuiClient/README.md`](./src/FrontierSharp.SuiClient/README.md)
- Runnable watcher example: [`examples/AssemblyWatcherExample/Program.cs`](./examples/AssemblyWatcherExample/Program.cs)
### Command-Line Tool
FrontierSharp comes with a command-line tool that can be used to interact with the EVE Frontier services. The tool is
available from the Releases page and is documented in the [FrontierSharp.CommandLine README.md](./src/FrontierSharp.CommandLine/README.md).
## Configuration
The project uses the standard .NET configuration system. You can configure the API client by adding the following
configuration to your `appsettings.json` file:
```json
{
"FrontierSharp": {
"BaseUri": "https://api.frontierdevtools.com/",
"HttpClientName": "WorldApi",
"TribeMembersLimit": 25,
"TribeFuzzyWarningThreshold": 3
}
}
```
You can then load this into the dependency injection provider with:
```csharp
services.Configure(Configuration.GetSection("FrontierSharp"));
```
## Complete Example
Here is a complete example of how to use the FrontierSharp API client in a .NET application:
```csharp
var services = new ServiceCollection();
services.AddHttpClient();
services.AddFusionCache().AsHybridCache();
services.AddKeyedSingleton(nameof(WorldApiClient))
.Configure(options => {
options.BaseUri = "https://blockchain-gateway-stillness.live.tech.evefrontier.com";
options.HttpClientName = nameof(WorldApiClient);
});
services.AddSingleton();
var provider = services.BuildServiceProvider();
var client = provider.GetRequiredService();
var result = await client.GetTribesPage();
if (result.IsFailed) {
Console.WriteLine("Failed with the following reasons:");
foreach (var reason in result.Reasons) {
Console.WriteLine($" - {reason.Message}");
}
return;
}
foreach (var member in result.Value.Data) {
Console.WriteLine($"{member.Id}: {member.Name} [{member.NameShort}]");
}
```
## ASP.NET Core Integration
You can easily integrate FrontierSharp into an ASP.NET Core application by adding the necessary services in the `Startup.cs` file, then consuming the `IResult` returned by the FrontierSharp:
```csharp
[HttpGet]
public async Task> GetTribes() {
return await client.GetTribes().ToActionResult();
}
```
## Contributing
Contributions are welcome! For bug reports, feature requests, or questions, please open an issue. For code
contributions, please create a pull request.
> [!IMPORTANT]
> If you find a security issue with the solution, I would appreciate it if you followed a responsible disclosure process
> and contacted me directly or via the GitHub Security Reporting programme.
## License
FrontierSharp is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.