Skip to main content

Fast, modern, and open-source OpenAPI SDK Generator

Project description

Damascus Logo

Damascus - OpenAPI SDK Generator

License Python

Damascus is a powerful Python-based SDK generator that transforms OpenAPI specifications into elegant, type-safe client libraries. Generate professional client SDKs for your API with minimal effort.

Key Features

  • Full Response Models: Converts API schemas into proper Python dataclasses
  • Type Safety: Comprehensive type annotations for modern Python development
  • Authentication Support: Handles API key, Bearer token and other auth methods
  • Multiple Input Sources: Generate from local JSON files or remote URLs
  • Template-Based: Easily customizable code generation via Jinja2 templates
  • Python Version Targeting: Generate code optimized for specific Python versions

Installation

Using pip:

pip install damascus

Using uv (recommended):

uv pip install damascus

Requirements

  • Runtime: Python 3.8+
  • Development: Python 3.10+ recommended for modern type hints
  • Dependencies: Jinja2 for templating

Quick Start

CLI Usage

Generate an SDK from an OpenAPI specification:

# From a local file
damascus generate ./path/to/openapi.json --output my_sdk

# From a URL
damascus generate https://api.example.com/openapi.json --output my_sdk

# With custom headers (for protected specs)
damascus generate https://api.example.com/openapi.json --header "Authorization: Bearer token123" --output my_sdk

SDK Usage

Once generated, using the SDK is straightforward:

from my_sdk import Client

# Initialize client
client = Client(
    base_url="https://api.example.com",
    api_key="your-api-key"
)

# Call API methods - responses are typed objects
response = client.get_user(user_id=123)
print(f"User name: {response.name}")

Documentation

Comprehensive documentation is available in the docs/ directory:

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

License

Damascus is licensed under the GNU General Public License v3.0 (GPLv3) - see the LICENSE file for details.

About

Damascus is created and maintained by Beshu Limited, a UK company based in London, established in 2017.

Beshu Limited is best known for:

  • ReadonlyREST: Security for Elasticsearch and Kibana
  • Anaphora: Automated reporting and alerting for Kibana

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

damascus-0.1.4.tar.gz (40.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

damascus-0.1.4-py3-none-any.whl (38.5 kB view details)

Uploaded Python 3

File details

Details for the file damascus-0.1.4.tar.gz.

File metadata

  • Download URL: damascus-0.1.4.tar.gz
  • Upload date:
  • Size: 40.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for damascus-0.1.4.tar.gz
Algorithm Hash digest
SHA256 4200aea0f81e771413bbe90ac8b6c315581b638c988859867cbf794e663070fe
MD5 1b708d124a1c541a418317df1b1bf2cb
BLAKE2b-256 c5c66dcb02f6d4740ce8d9778c82bad016953ada667d3028e361c817aabb6813

See more details on using hashes here.

File details

Details for the file damascus-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: damascus-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 38.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for damascus-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8dc86f58d54a96faa82f05e2a84885a7b17c9dbc8ea4cb83588f12514d7e8ead
MD5 09275e970d2612ed80054a8dba3cec3c
BLAKE2b-256 4ad7ac60cd9bf329897f8b94f76d337df350fc862bfcab74f47e5c928c0791fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page