# Vargur API SDK
Vargur API SDK is a powerful toolkit for building extensible applications with plugin support. It provides a core set of features including database integration, caching, event bus, and authentication, along with a plugin system that allows easy extension of functionality.
## Features
- Plugin system for easy extensibility
- Mock implementations for database integration, caching, event bus, and authentication
- Minimal dependencies for flexibility in implementation
## Installation
You can install Vargur API SDK using pip:
```
pip install vargur-api-sdk
```
## Usage
Here's a basic example of how to use Vargur API SDK:
```python
from fastapi import FastAPI
from vargur_sdk import Plugin, load_plugins, event_bus
app = FastAPI()
class MyPlugin(Plugin):
def __init__(self):
super().__init__("my_plugin")
self.router.add_api_route("/hello", self.hello)
async def hello(self):
return {"message": "Hello from my plugin!"}
# Load all plugins
plugins = load_plugins()
plugins["my_plugin"] = MyPlugin()
# Include plugin routers
for plugin in plugins.values():
app.include_router(plugin.router)
# Example of using the event bus
@app.post("/trigger_event")
async def trigger_event():
await event_bus.publish("some_event", data="Some data")
return {"message": "Event triggered"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
```
## Components
- **Plugin**: Base class for creating plugins
- **Config**: Configuration settings for the SDK
- **Database**: Mock database session provider
- **Cache**: Mock caching implementation
- **EventBus**: Mock event publishing and subscribing system
- **Authentication**: Mock user authentication
## Configuration
Vargur API SDK uses a `Config` class for configuration. You can modify these settings in your application:
```python
from vargur_sdk import config
config.DEBUG = True
config.LOG_LEVEL = "DEBUG"
config.DATABASE_URL = "your_database_url"
config.SECRET_KEY = "your_secret_key"
```
## Documentation
For more detailed information, please refer to the following documentation:
- [User Guide](https://meloncafe.github.io/vargur-api-sdk/user-guide)
- [API Reference](https://meloncafe.github.io/vargur-api-sdk/api-reference)
- [Plugin Guidelines](https://meloncafe.github.io/vargur-api-sdk/plugin-guidelines)
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under the [MIT License](LICENSE).
Raw data
{
"_id": null,
"home_page": "https://github.com/meloncafe/vargur-api-sdk",
"name": "vargur-api-sdk",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": "eve online, sdk, api",
"author": "MelonCafe",
"author_email": "contact@siege0green.com",
"download_url": "https://files.pythonhosted.org/packages/58/13/86fb6a86e8e41e5bc5df2c3674fa18346d4097b25fa9c6918351e5bf3bbe/vargur_api_sdk-0.0.1.tar.gz",
"platform": null,
"description": "# Vargur API SDK\n\nVargur API SDK is a powerful toolkit for building extensible applications with plugin support. It provides a core set of features including database integration, caching, event bus, and authentication, along with a plugin system that allows easy extension of functionality.\n\n## Features\n\n- Plugin system for easy extensibility\n- Mock implementations for database integration, caching, event bus, and authentication\n- Minimal dependencies for flexibility in implementation\n\n## Installation\n\nYou can install Vargur API SDK using pip:\n\n```\npip install vargur-api-sdk\n```\n\n## Usage\n\nHere's a basic example of how to use Vargur API SDK:\n\n```python\nfrom fastapi import FastAPI\nfrom vargur_sdk import Plugin, load_plugins, event_bus\n\napp = FastAPI()\n\nclass MyPlugin(Plugin):\n def __init__(self):\n super().__init__(\"my_plugin\")\n self.router.add_api_route(\"/hello\", self.hello)\n\n async def hello(self):\n return {\"message\": \"Hello from my plugin!\"}\n\n# Load all plugins\nplugins = load_plugins()\nplugins[\"my_plugin\"] = MyPlugin()\n\n# Include plugin routers\nfor plugin in plugins.values():\n app.include_router(plugin.router)\n\n# Example of using the event bus\n@app.post(\"/trigger_event\")\nasync def trigger_event():\n await event_bus.publish(\"some_event\", data=\"Some data\")\n return {\"message\": \"Event triggered\"}\n\nif __name__ == \"__main__\":\n import uvicorn\n uvicorn.run(app, host=\"0.0.0.0\", port=8000)\n```\n\n## Components\n\n- **Plugin**: Base class for creating plugins\n- **Config**: Configuration settings for the SDK\n- **Database**: Mock database session provider\n- **Cache**: Mock caching implementation\n- **EventBus**: Mock event publishing and subscribing system\n- **Authentication**: Mock user authentication\n\n## Configuration\n\nVargur API SDK uses a `Config` class for configuration. You can modify these settings in your application:\n\n```python\nfrom vargur_sdk import config\n\nconfig.DEBUG = True\nconfig.LOG_LEVEL = \"DEBUG\"\nconfig.DATABASE_URL = \"your_database_url\"\nconfig.SECRET_KEY = \"your_secret_key\"\n```\n\n## Documentation\n\nFor more detailed information, please refer to the following documentation:\n\n- [User Guide](https://meloncafe.github.io/vargur-api-sdk/user-guide)\n- [API Reference](https://meloncafe.github.io/vargur-api-sdk/api-reference)\n- [Plugin Guidelines](https://meloncafe.github.io/vargur-api-sdk/plugin-guidelines)\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).",
"bugtrack_url": null,
"license": "MIT",
"summary": "EVE ONLINE - Vargur API SDK",
"version": "0.0.1",
"project_urls": {
"Documentation": "https://vargur-api-sdk.siege-green.com",
"Homepage": "https://github.com/meloncafe/vargur-api-sdk",
"Repository": "https://github.com/meloncafe/vargur-api-sdk"
},
"split_keywords": [
"eve online",
" sdk",
" api"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b15c440ecc28e5f1846e8e9c70949517fbc49e611b817108427d093b4dd29a48",
"md5": "b5e61814ccb694d8adc91da0a1c7942f",
"sha256": "65376c6138540c9e975b3ecc0cf00a107b2fa54ab233cf9039a0cb9b0a6e67a4"
},
"downloads": -1,
"filename": "vargur_api_sdk-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b5e61814ccb694d8adc91da0a1c7942f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 5277,
"upload_time": "2024-07-13T06:14:16",
"upload_time_iso_8601": "2024-07-13T06:14:16.781117Z",
"url": "https://files.pythonhosted.org/packages/b1/5c/440ecc28e5f1846e8e9c70949517fbc49e611b817108427d093b4dd29a48/vargur_api_sdk-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "581386fb6a86e8e41e5bc5df2c3674fa18346d4097b25fa9c6918351e5bf3bbe",
"md5": "6d318eea4b1de63037dfcd726766f1d6",
"sha256": "0730b336f448af0d5c5e864d1397e5acc2858fb7c082ab5a607184a223d366dd"
},
"downloads": -1,
"filename": "vargur_api_sdk-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "6d318eea4b1de63037dfcd726766f1d6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 3768,
"upload_time": "2024-07-13T06:14:18",
"upload_time_iso_8601": "2024-07-13T06:14:18.401152Z",
"url": "https://files.pythonhosted.org/packages/58/13/86fb6a86e8e41e5bc5df2c3674fa18346d4097b25fa9c6918351e5bf3bbe/vargur_api_sdk-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-13 06:14:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "meloncafe",
"github_project": "vargur-api-sdk",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "vargur-api-sdk"
}