Alephbasys.Mana.Gateway.Client
1.0.5
dotnet add package Alephbasys.Mana.Gateway.Client --version 1.0.5
NuGet\Install-Package Alephbasys.Mana.Gateway.Client -Version 1.0.5
<PackageReference Include="Alephbasys.Mana.Gateway.Client" Version="1.0.5" />
<PackageVersion Include="Alephbasys.Mana.Gateway.Client" Version="1.0.5" />
<PackageReference Include="Alephbasys.Mana.Gateway.Client" />
paket add Alephbasys.Mana.Gateway.Client --version 1.0.5
#r "nuget: Alephbasys.Mana.Gateway.Client, 1.0.5"
#:package Alephbasys.Mana.Gateway.Client@1.0.5
#addin nuget:?package=Alephbasys.Mana.Gateway.Client&version=1.0.5
#tool nuget:?package=Alephbasys.Mana.Gateway.Client&version=1.0.5
Mana Gateway Clients
A lightweight set of clients for interacting with the Mana Gateway API.
Note: The API is not free. A shared
X-Key
value offree
is bundled for evaluation and allows up to 3 requests per minute. Supply your own key for higher limits.
Features
All clients expose the following operations:
GetModels
– list available models.CreateChatCompletion
– generate chat responses.CreateCompletion
– generate text completions.CreateEmbedding
– produce vector embeddings.TranscribeFile
– automatic speech recognition.EmbedSentences
– embed raw sentences.SearchEmbeddings
– semantic search over embeddings.GetEmbeddingDimension
– return embedding dimension size.ListTtsSpeakers
– list text-to-speech voices.TextToSpeech
– synthesize speech from text.GetHealth
– health check endpoint.GetMetrics
– Prometheus metrics endpoint.
API Coverage
Feature | .NET | Go | Java | Kotlin | JS/TS | PHP | Ruby | Swift | Python |
---|---|---|---|---|---|---|---|---|---|
List models | GetModelsAsync |
GetModels |
getModels |
getModels |
getModels |
getModels |
get_models |
getModels |
– |
Chat completions | CreateChatCompletionAsync |
CreateChatCompletion |
createChatCompletion |
createChatCompletion |
createChatCompletion |
createChatCompletion |
create_chat_completion |
createChatCompletion |
– |
Completions | CreateCompletionAsync |
CreateCompletion |
createCompletion |
createCompletion |
createCompletion |
createCompletion |
create_completion |
createCompletion |
– |
Embeddings | CreateEmbeddingAsync |
CreateEmbedding |
createEmbedding |
createEmbedding |
createEmbedding |
createEmbedding |
create_embedding |
createEmbedding |
– |
Transcribe file | TranscribeFileAsync |
TranscribeFile |
transcribeFile |
transcribeFile |
transcribeFile |
transcribeFile |
transcribe_file |
transcribeFile |
– |
Embed sentences | EmbedSentencesAsync |
EmbedSentences |
embedSentences |
embedSentences |
embedSentences |
embedSentences |
embed_sentences |
embedSentences |
– |
Search embeddings | SearchEmbeddingsAsync |
SearchEmbeddings |
searchEmbeddings |
searchEmbeddings |
searchEmbeddings |
searchEmbeddings |
search_embeddings |
searchEmbeddings |
– |
Embedding dimension | GetEmbeddingDimensionAsync |
GetEmbeddingDimension |
getEmbeddingDimension |
getEmbeddingDimension |
getEmbeddingDimension |
getEmbeddingDimension |
get_embedding_dimension |
getEmbeddingDimension |
– |
List TTS speakers | ListTtsSpeakersAsync |
ListTtsSpeakers |
listTtsSpeakers |
listTtsSpeakers |
listTtsSpeakers |
listTtsSpeakers |
list_tts_speakers |
listTtsSpeakers |
– |
Text to speech | TextToSpeechAsync |
TextToSpeech |
textToSpeech |
textToSpeech |
textToSpeech |
textToSpeech |
text_to_speech |
textToSpeech |
– |
Health check | GetHealthAsync |
GetHealth |
getHealth |
getHealth |
getHealth |
getHealth |
get_health |
getHealth |
– |
Metrics | GetMetricsAsync |
GetMetrics |
getMetrics |
getMetrics |
getMetrics |
getMetrics |
get_metrics |
getMetrics |
– |
Service status | – | – | – | – | – | – | – | – | get_status |
Each client returns parsed JSON structures idiomatic to its host language.
.NET Installation
The .NET library targets .NET 9.0. Install it from NuGet:
dotnet add package Alephbasys.Mana.Gateway.Client
.NET Usage
using var httpClient = new HttpClient();
var client = new ManaGatewayClient(httpClient); // uses the free key
var models = await client.GetModelsAsync();
// for higher throughput
var paidClient = new ManaGatewayClient(httpClient, "your-api-key");
The client currently supports models, chat completions, completions, embeddings, ASR transcription, embedding utilities, TTS, and health/metrics endpoints.
.NET Dependency Injection
You can also register the client via IServiceCollection
and configure it with options:
services.AddManaGatewayClient(options =>
{
options.ApiKey = "your-api-key";
// options.BaseUrl = "https://api.alephbasys.ir"; // optional
});
Building from source
Clone the repository and run:
dotnet build
Kotlin Client
A Kotlin client is provided in the kotlin
module and targets JVM 17. It mirrors the .NET API surface.
Installation
dependencies {
implementation("ir.alephbasys:mana-gateway-client:0.1.0")
}
## Java Client
A Java implementation lives under `java/` and mirrors the same Mana Gateway API endpoints.
### Build and Test
```bash
cd java
./gradlew check
Usage
val client = ManaGatewayClient()
val models = runBlocking { client.getModels() }
Run lint, tests and generate Dokka docs:
./gradlew ktlintCheck detekt test dokkaHtml
Dokka output is written to kotlin/docs
.
Add the dependency from Maven Central:
<dependency>
<groupId>com.alephbasys</groupId>
<artifactId>mana-gateway-client</artifactId>
<version>0.1.0</version>
</dependency>
ManaGatewayClient client = new ManaGatewayClient("https://api.alephbasys.ir", "free");
JsonNode models = client.getModels();
Generated Javadoc is available in java/docs
.
JavaScript/TypeScript Client
Install with npm:
npm install @alephbasys/mana-gateway-client
import ManaGatewayClient from '@alephbasys/mana-gateway-client';
const client = new ManaGatewayClient('your-api-key');
const models = await client.getModels();
PHP Client
composer require alephbasys/mana-gateway-client
use Alephbasys\Mana\Gateway\Client\ManaGatewayClient;
$client = new ManaGatewayClient(); // uses the free key
$models = $client->getModels();
Ruby Client
gem 'mana_gateway_client', '~> 0.1.0'
require 'mana_gateway_client'
client = ManaGatewayClient::Client.new(api_key: 'your-key')
models = client.get_models
Swift Client
.package(url: "https://github.com/alephbasys/ManaGatewayClient.git", from: "1.0.0")
import ManaGatewayClient
let client = ManaGatewayClient(apiKey: "YOUR_KEY")
let data = try await client.getModels()
Python Client
pip install mana-client
from mana_client import ManaClient
client = ManaClient("https://gateway.example.com")
status = client.get_status()
print(status)
Releases
Releases are tagged using semantic versioning (e.g., go/v0.1.0
).
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- Microsoft.Extensions.Http (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial release.