gobe


Namegobe JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/gobe-team/gobe
SummaryModern Python Web Framework with Unity Integration
upload_time2025-08-11 23:38:51
maintainerNone
docs_urlNone
authorGobe Team
requires_python>=3.8
licenseMIT
keywords web framework django flask fastapi unity gamedev rest api graphql websocket
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Gobe Framework

**Modern Python Web Framework with Unity Integration**

Gobe is a next-generation web framework designed to bridge the gap between web development and game development. Built with modern Python practices, it provides a familiar Django-like experience while preparing for seamless Unity integration.

## ✨ Features

### 🚀 **Modern Web Development**
- **Intuitive CLI** - Project scaffolding and management
- **Auto-routing** - Convention-based URL routing
- **Hybrid Templates** - Django + JSX-style templating
- **Powerful ORM** - Type-safe database operations
- **Built-in APIs** - REST, GraphQL, and WebSocket support

### 🎮 **Game-Ready Architecture**
- **Unity Bridge** - Future-ready game engine integration
- **Real-time Communication** - WebSocket for live gameplay
- **Game Modules** - Specialized components for game logic
- **Scalable Backend** - Built for multiplayer games

### 🛠 **Developer Experience**
- **Hot Reload** - Instant development feedback
- **Auto-migrations** - Intelligent database schema updates
- **Rich CLI** - Comprehensive command-line tools
- **Plugin System** - Extensible architecture

## 🚀 Quick Start

### Installation

```bash
pip install gobe-framework
```

### Create Your First Project

```bash
# Create a new Gobe project
gobe create-project my_game_backend

# Navigate to project
cd my_game_backend

# Start development server
gobe serve
```

Your Gobe application is now running at `http://localhost:8000`!

## 📁 Project Structure

```
my_game_backend/
├── gobe_config/          # Configuration files
│   └── settings.py
├── web_apps/             # Web applications
│   └── main/
│       ├── __init__.py
│       ├── models.py     # Database models
│       ├── views.py      # Request handlers
│       └── api_views.py  # API endpoints
├── game_modules/         # Game-specific modules (future)
├── shared/               # Shared code
├── static/               # Static files (CSS, JS, images)
├── templates/            # HTML templates
├── api/                  # API configuration
└── main.py              # Application entry point
```

## 🔧 Core Concepts

### Models (ORM)

Define your data models with a clean, type-safe API:

```python
from gobe.database.orm import Model
from gobe.database.orm.fields import CharField, IntegerField, DateTimeField

class Player(Model):
    username = CharField(max_length=50, unique=True)
    score = IntegerField(default=0)
    level = IntegerField(default=1)
    created_at = DateTimeField(auto_now_add=True)

# Query your data
players = Player.objects.filter(level__gt=5).order_by('-score')
top_player = Player.objects.get(username='champion')
```

### Views

Handle requests with class-based or function-based views:

```python
from gobe.web.views import View
from gobe.web.routing import get, post

class LeaderboardView(View):
    template_name = 'leaderboard.html'
    
    def get(self, request):
        players = Player.objects.order_by('-score')[:10]
        return self.render(request, {'players': players})

# Or use decorators
@get('/api/players/')
def get_players(request):
    players = Player.objects.all()
    return JsonResponse([p.to_dict() for p in players])
```

### API Development

Build REST APIs effortlessly:

```python
from gobe.api.rest import ModelViewSet
from gobe.api.rest.permissions import IsAuthenticated

class PlayerViewSet(ModelViewSet):
    model = Player
    permission_classes = [IsAuthenticated]
    
    def get_queryset(self):
        return Player.objects.filter(user=self.request.user)
```

### Templates

Use familiar template syntax with modern features:

```html
<!DOCTYPE html>
<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
    <h1>{{ title }}</h1>
    
    {% if players %}
        <ul>
        {% for player in players %}
            <li>{{ player.username }} - Level {{ player.level }}</li>
        {% endfor %}
        </ul>
    {% else %}
        <p>No players found.</p>
    {% endif %}
</body>
</html>
```

## 🌐 API Support

### REST API

```python
# Automatic CRUD endpoints
class GameSessionViewSet(ModelViewSet):
    model = GameSession
    serializer_class = GameSessionSerializer
    
    # GET /api/gamesessions/
    # POST /api/gamesessions/
    # GET /api/gamesessions/{id}/
    # PUT /api/gamesessions/{id}/
    # DELETE /api/gamesessions/{id}/
```

### GraphQL (Coming Soon)

```python
from gobe.api.graphql import ObjectType, Field, GraphQLSchema

class PlayerType(ObjectType):
    username = Field(String)
    score = Field(Int)
    level = Field(Int)

class Query(ObjectType):
    players = Field(List(PlayerType))
    
    def resolve_players(self, info):
        return Player.objects.all()

schema = GraphQLSchema(query=Query)
```

### WebSocket

```python
from gobe.api.websocket import WebSocketHandler

class GameHandler(WebSocketHandler):
    async def on_connect(self, connection):
        await connection.send({'type': 'welcome'})
    
    async def on_message(self, connection, data):
        # Handle real-time game events
        await self.broadcast_to_room(data['room'], {
            'type': 'game_update',
            'data': data
        })
```

## 🎯 CLI Commands

Gobe provides a comprehensive CLI for project management:

```bash
# Project creation
gobe create-project <name> [--template=basic|api|fullstack]

# App management
gobe add-app <name> [--type=web|api|game]

# Development
gobe serve [--host=127.0.0.1] [--port=8000] [--reload]

# Database operations
gobe migrate [--auto] [--dry-run]

# Production
gobe build [--optimize] [--output=dist]
gobe deploy [--target=docker|heroku|aws]
```

## 🎮 Unity Integration (Coming Soon)

Gobe is designed with future Unity integration in mind:

```python
# Game module example
from gobe.unity_bridge import UnityBridge
from gobe.game_modules import GameModule

class MyGameModule(GameModule):
    def setup(self, app):
        # Register Unity message handlers
        self.bridge = UnityBridge()
        self.bridge.on('player_move', self.handle_player_move)
    
    async def handle_player_move(self, data):
        # Process Unity game events
        player = await Player.objects.aget(id=data['player_id'])
        player.position = data['position']
        await player.asave()
```

## 📖 Documentation

- **[Getting Started Guide](https://gobe.dev/docs/getting-started)**
- **[API Reference](https://gobe.dev/docs/api)**
- **[Tutorials](https://gobe.dev/docs/tutorials)**
- **[Unity Integration](https://gobe.dev/docs/unity)** (Coming Soon)

## 🤝 Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🚀 Roadmap

### Phase 1: Core Framework ✅
- [x] CLI system
- [x] Project scaffolding
- [x] ORM and database layer
- [x] Web views and routing
- [x] Template engine
- [x] REST API support

### Phase 2: Enhanced APIs
- [ ] GraphQL implementation
- [ ] WebSocket optimization
- [ ] Real-time subscriptions
- [ ] Advanced caching

### Phase 3: Unity Bridge
- [ ] Unity C# bridge library
- [ ] Real-time game state sync
- [ ] Asset management integration
- [ ] Multiplayer game templates

### Phase 4: Production Ready
- [ ] Performance optimizations
- [ ] Monitoring and analytics
- [ ] Cloud deployment tools
- [ ] Enterprise features

## 💡 Examples

Check out our example projects:

- **[Blog Application](examples/blog)** - Traditional web development
- **[REST API](examples/api)** - Pure API backend
- **[Game Backend](examples/game)** - Multiplayer game server (Coming Soon)

## 🙋‍♂️ Support

- **[Discord Community](https://discord.gg/gobe)**
- **[GitHub Issues](https://github.com/gobe-team/gobe-framework/issues)**
- **[Stack Overflow](https://stackoverflow.com/questions/tagged/gobe-framework)**

---

**Built with ❤️ by the Gobe Team**

*Bridging Web and Game Development*

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/gobe-team/gobe",
    "name": "gobe",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Gobe Team <contact@gobe.dev>",
    "keywords": "web, framework, django, flask, fastapi, unity, gamedev, rest, api, graphql, websocket",
    "author": "Gobe Team",
    "author_email": "Gobe Team <contact@gobe.dev>",
    "download_url": "https://files.pythonhosted.org/packages/07/ca/02e3660de2b4c76c4cbadd28c5d3b8ff53af47d66d2c4c3d74d03d520e84/gobe-0.1.0.tar.gz",
    "platform": null,
    "description": "# Gobe Framework\n\n**Modern Python Web Framework with Unity Integration**\n\nGobe is a next-generation web framework designed to bridge the gap between web development and game development. Built with modern Python practices, it provides a familiar Django-like experience while preparing for seamless Unity integration.\n\n## \u2728 Features\n\n### \ud83d\ude80 **Modern Web Development**\n- **Intuitive CLI** - Project scaffolding and management\n- **Auto-routing** - Convention-based URL routing\n- **Hybrid Templates** - Django + JSX-style templating\n- **Powerful ORM** - Type-safe database operations\n- **Built-in APIs** - REST, GraphQL, and WebSocket support\n\n### \ud83c\udfae **Game-Ready Architecture**\n- **Unity Bridge** - Future-ready game engine integration\n- **Real-time Communication** - WebSocket for live gameplay\n- **Game Modules** - Specialized components for game logic\n- **Scalable Backend** - Built for multiplayer games\n\n### \ud83d\udee0 **Developer Experience**\n- **Hot Reload** - Instant development feedback\n- **Auto-migrations** - Intelligent database schema updates\n- **Rich CLI** - Comprehensive command-line tools\n- **Plugin System** - Extensible architecture\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install gobe-framework\n```\n\n### Create Your First Project\n\n```bash\n# Create a new Gobe project\ngobe create-project my_game_backend\n\n# Navigate to project\ncd my_game_backend\n\n# Start development server\ngobe serve\n```\n\nYour Gobe application is now running at `http://localhost:8000`!\n\n## \ud83d\udcc1 Project Structure\n\n```\nmy_game_backend/\n\u251c\u2500\u2500 gobe_config/          # Configuration files\n\u2502   \u2514\u2500\u2500 settings.py\n\u251c\u2500\u2500 web_apps/             # Web applications\n\u2502   \u2514\u2500\u2500 main/\n\u2502       \u251c\u2500\u2500 __init__.py\n\u2502       \u251c\u2500\u2500 models.py     # Database models\n\u2502       \u251c\u2500\u2500 views.py      # Request handlers\n\u2502       \u2514\u2500\u2500 api_views.py  # API endpoints\n\u251c\u2500\u2500 game_modules/         # Game-specific modules (future)\n\u251c\u2500\u2500 shared/               # Shared code\n\u251c\u2500\u2500 static/               # Static files (CSS, JS, images)\n\u251c\u2500\u2500 templates/            # HTML templates\n\u251c\u2500\u2500 api/                  # API configuration\n\u2514\u2500\u2500 main.py              # Application entry point\n```\n\n## \ud83d\udd27 Core Concepts\n\n### Models (ORM)\n\nDefine your data models with a clean, type-safe API:\n\n```python\nfrom gobe.database.orm import Model\nfrom gobe.database.orm.fields import CharField, IntegerField, DateTimeField\n\nclass Player(Model):\n    username = CharField(max_length=50, unique=True)\n    score = IntegerField(default=0)\n    level = IntegerField(default=1)\n    created_at = DateTimeField(auto_now_add=True)\n\n# Query your data\nplayers = Player.objects.filter(level__gt=5).order_by('-score')\ntop_player = Player.objects.get(username='champion')\n```\n\n### Views\n\nHandle requests with class-based or function-based views:\n\n```python\nfrom gobe.web.views import View\nfrom gobe.web.routing import get, post\n\nclass LeaderboardView(View):\n    template_name = 'leaderboard.html'\n    \n    def get(self, request):\n        players = Player.objects.order_by('-score')[:10]\n        return self.render(request, {'players': players})\n\n# Or use decorators\n@get('/api/players/')\ndef get_players(request):\n    players = Player.objects.all()\n    return JsonResponse([p.to_dict() for p in players])\n```\n\n### API Development\n\nBuild REST APIs effortlessly:\n\n```python\nfrom gobe.api.rest import ModelViewSet\nfrom gobe.api.rest.permissions import IsAuthenticated\n\nclass PlayerViewSet(ModelViewSet):\n    model = Player\n    permission_classes = [IsAuthenticated]\n    \n    def get_queryset(self):\n        return Player.objects.filter(user=self.request.user)\n```\n\n### Templates\n\nUse familiar template syntax with modern features:\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n    <title>{{ title }}</title>\n</head>\n<body>\n    <h1>{{ title }}</h1>\n    \n    {% if players %}\n        <ul>\n        {% for player in players %}\n            <li>{{ player.username }} - Level {{ player.level }}</li>\n        {% endfor %}\n        </ul>\n    {% else %}\n        <p>No players found.</p>\n    {% endif %}\n</body>\n</html>\n```\n\n## \ud83c\udf10 API Support\n\n### REST API\n\n```python\n# Automatic CRUD endpoints\nclass GameSessionViewSet(ModelViewSet):\n    model = GameSession\n    serializer_class = GameSessionSerializer\n    \n    # GET /api/gamesessions/\n    # POST /api/gamesessions/\n    # GET /api/gamesessions/{id}/\n    # PUT /api/gamesessions/{id}/\n    # DELETE /api/gamesessions/{id}/\n```\n\n### GraphQL (Coming Soon)\n\n```python\nfrom gobe.api.graphql import ObjectType, Field, GraphQLSchema\n\nclass PlayerType(ObjectType):\n    username = Field(String)\n    score = Field(Int)\n    level = Field(Int)\n\nclass Query(ObjectType):\n    players = Field(List(PlayerType))\n    \n    def resolve_players(self, info):\n        return Player.objects.all()\n\nschema = GraphQLSchema(query=Query)\n```\n\n### WebSocket\n\n```python\nfrom gobe.api.websocket import WebSocketHandler\n\nclass GameHandler(WebSocketHandler):\n    async def on_connect(self, connection):\n        await connection.send({'type': 'welcome'})\n    \n    async def on_message(self, connection, data):\n        # Handle real-time game events\n        await self.broadcast_to_room(data['room'], {\n            'type': 'game_update',\n            'data': data\n        })\n```\n\n## \ud83c\udfaf CLI Commands\n\nGobe provides a comprehensive CLI for project management:\n\n```bash\n# Project creation\ngobe create-project <name> [--template=basic|api|fullstack]\n\n# App management\ngobe add-app <name> [--type=web|api|game]\n\n# Development\ngobe serve [--host=127.0.0.1] [--port=8000] [--reload]\n\n# Database operations\ngobe migrate [--auto] [--dry-run]\n\n# Production\ngobe build [--optimize] [--output=dist]\ngobe deploy [--target=docker|heroku|aws]\n```\n\n## \ud83c\udfae Unity Integration (Coming Soon)\n\nGobe is designed with future Unity integration in mind:\n\n```python\n# Game module example\nfrom gobe.unity_bridge import UnityBridge\nfrom gobe.game_modules import GameModule\n\nclass MyGameModule(GameModule):\n    def setup(self, app):\n        # Register Unity message handlers\n        self.bridge = UnityBridge()\n        self.bridge.on('player_move', self.handle_player_move)\n    \n    async def handle_player_move(self, data):\n        # Process Unity game events\n        player = await Player.objects.aget(id=data['player_id'])\n        player.position = data['position']\n        await player.asave()\n```\n\n## \ud83d\udcd6 Documentation\n\n- **[Getting Started Guide](https://gobe.dev/docs/getting-started)**\n- **[API Reference](https://gobe.dev/docs/api)**\n- **[Tutorials](https://gobe.dev/docs/tutorials)**\n- **[Unity Integration](https://gobe.dev/docs/unity)** (Coming Soon)\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude80 Roadmap\n\n### Phase 1: Core Framework \u2705\n- [x] CLI system\n- [x] Project scaffolding\n- [x] ORM and database layer\n- [x] Web views and routing\n- [x] Template engine\n- [x] REST API support\n\n### Phase 2: Enhanced APIs\n- [ ] GraphQL implementation\n- [ ] WebSocket optimization\n- [ ] Real-time subscriptions\n- [ ] Advanced caching\n\n### Phase 3: Unity Bridge\n- [ ] Unity C# bridge library\n- [ ] Real-time game state sync\n- [ ] Asset management integration\n- [ ] Multiplayer game templates\n\n### Phase 4: Production Ready\n- [ ] Performance optimizations\n- [ ] Monitoring and analytics\n- [ ] Cloud deployment tools\n- [ ] Enterprise features\n\n## \ud83d\udca1 Examples\n\nCheck out our example projects:\n\n- **[Blog Application](examples/blog)** - Traditional web development\n- **[REST API](examples/api)** - Pure API backend\n- **[Game Backend](examples/game)** - Multiplayer game server (Coming Soon)\n\n## \ud83d\ude4b\u200d\u2642\ufe0f Support\n\n- **[Discord Community](https://discord.gg/gobe)**\n- **[GitHub Issues](https://github.com/gobe-team/gobe-framework/issues)**\n- **[Stack Overflow](https://stackoverflow.com/questions/tagged/gobe-framework)**\n\n---\n\n**Built with \u2764\ufe0f by the Gobe Team**\n\n*Bridging Web and Game Development*\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Modern Python Web Framework with Unity Integration",
    "version": "0.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/gobe-team/gobe-framework/issues",
        "Changelog": "https://github.com/gobe-team/gobe-framework/blob/main/CHANGELOG.md",
        "Documentation": "https://gobe.dev/docs",
        "Homepage": "https://gobe.dev",
        "Repository": "https://github.com/gobe-team/gobe-framework"
    },
    "split_keywords": [
        "web",
        " framework",
        " django",
        " flask",
        " fastapi",
        " unity",
        " gamedev",
        " rest",
        " api",
        " graphql",
        " websocket"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fe79c24474dfab88a7498ead3501cb38aa4f8ed31ef958a9a5cfef4b9705c797",
                "md5": "984aeca4f04b73dc9861414e1834b33b",
                "sha256": "d4d48bc4cc1485139329e5840f895dcd9badb33bad05df5eed971ea1d5dbf319"
            },
            "downloads": -1,
            "filename": "gobe-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "984aeca4f04b73dc9861414e1834b33b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 6674,
            "upload_time": "2025-08-11T23:38:50",
            "upload_time_iso_8601": "2025-08-11T23:38:50.274033Z",
            "url": "https://files.pythonhosted.org/packages/fe/79/c24474dfab88a7498ead3501cb38aa4f8ed31ef958a9a5cfef4b9705c797/gobe-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "07ca02e3660de2b4c76c4cbadd28c5d3b8ff53af47d66d2c4c3d74d03d520e84",
                "md5": "0418e5d883a34b56b1b7e994cc9e9a1c",
                "sha256": "8cb3fb3cb5fdf4095059e889b3f90e1bf2c7d2bf834c311726d805e2c3d8af70"
            },
            "downloads": -1,
            "filename": "gobe-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "0418e5d883a34b56b1b7e994cc9e9a1c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 8882,
            "upload_time": "2025-08-11T23:38:51",
            "upload_time_iso_8601": "2025-08-11T23:38:51.744957Z",
            "url": "https://files.pythonhosted.org/packages/07/ca/02e3660de2b4c76c4cbadd28c5d3b8ff53af47d66d2c4c3d74d03d520e84/gobe-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-11 23:38:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gobe-team",
    "github_project": "gobe",
    "github_not_found": true,
    "lcname": "gobe"
}
        
Elapsed time: 0.73599s