Fast, modern, and open-source OpenAPI SDK Generator
Project description
Damascus - OpenAPI SDK Generator
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file damascus-0.1.5.tar.gz.
File metadata
- Download URL: damascus-0.1.5.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edeae6f8b33d3acae0cc9a919a17ef000de9709fb99ea4582817a7504bd6b835
|
|
| MD5 |
b1801ecf210fdded8c0eda0e649c8ca2
|
|
| BLAKE2b-256 |
037c8209d5eb49b1b84f50dd6961ee9d1c89a2123e5bc70a58aa96a1da9a2c8b
|
File details
Details for the file damascus-0.1.5-py3-none-any.whl.
File metadata
- Download URL: damascus-0.1.5-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45209462ce67204acac8803565ba50c61985b635981dad4d73191a231ac745e8
|
|
| MD5 |
93f6ddb2a904c5492cb329dfaec250f7
|
|
| BLAKE2b-256 |
4bf2ef575cc128ca4af5d5b45ddd75a461edf778684f1b7b62ad40b87f4cd720
|