Skip to content

halfORM Ecosystem

Work in Progress

The halfORM ecosystem is actively evolving. This documentation outlines our vision and current development efforts. We welcome contributions, feedback, and ideas from the community!

  • ๐Ÿ’ฌ Share your thoughts: GitHub Discussions
  • ๐Ÿ› Report issues: GitHub Issues
  • ๐Ÿค Contribute: Help shape the future of halfORM development tools

The halfORM ecosystem extends the core PostgreSQL-native ORM with a rich set of tools and extensions for modern development workflows. Built on a database-first philosophy, the ecosystem provides everything from development frameworks to production-ready APIs.

Architecture Overview

The halfORM ecosystem is designed around three complementary layers:

๐Ÿงฉ Extensions Layer

Optional and modular - half-orm-litestar-api - REST API generation - half-orm-admin - Admin interfaces
- half-orm-monitoring - Observability tools - ...and more community extensions

โ†•๏ธ Extends

๐Ÿ› ๏ธ halfORM_dev Layer

Development Framework & hop command - Project management and scaffolding - Database patch system with versioning - Code generation and Git integration
- Extension point for ecosystem tools

โ†•๏ธ Built on

๐Ÿ—ƒ๏ธ halfORM Core Layer

PostgreSQL-native ORM - Stable and independent - Database introspection and relation classes - Query building with transparent SQL - Transaction management - Can be used standalone

Core Components

๐Ÿ—ƒ๏ธ halfORM Core

Status: Stable and mature
Purpose: PostgreSQL-native Object-Relational Mapper

The foundation layer that can be used independently. Provides: - Database introspection and relation classes - Query building with transparent SQL generation - Transaction management - Advanced PostgreSQL feature support

from half_orm.model import Model

# Direct usage - no framework required
blog = Model('blog_db')
Post = blog.get_relation_class('blog.post')

# Immediate productivity
for post in Post(is_published=True).ho_order_by('created_at DESC'):
    print(post['title'])

๐Ÿ“– Learn halfORM Core โ†’

๐Ÿ› ๏ธ halfORM_dev

Status: Early Alpha - Breaking changes expected
Purpose: Development framework with project management capabilities

Vision for comprehensive development capabilities: - Project scaffolding and structure - Database patch management with semantic versioning - Automatic code generation synchronized with schema - Git workflow integration - Testing framework - Production deployment tools

# Planned development lifecycle
pip install half-orm-dev
hop new my_project --devel
hop prepare -l minor -m "Add user system"
hop apply
hop release

๐Ÿ“– Learn about halfORM_dev โ†’

๐Ÿงฉ Extensions

Status: Concept phase - Proof of concepts in development
Purpose: Specialized tools that will extend halfORM_dev

Planned packages that will integrate with the hop command:

Extension Purpose Status Planned Commands
half-orm-litestar-api REST API generation ๐Ÿงช Proof of Concept hop litestar-api generate
half-orm-admin Admin interface ๐Ÿ’ญ Concept hop admin setup
half-orm-monitoring Observability tools ๐Ÿ’ญ Concept hop monitoring dashboard

Getting Started

Quick Start Path

# 1. Choose your approach
pip install half-orm          # Core only - integrate into existing project
# OR
pip install half-orm-dev      # Full development framework

# 2. If using halfORM_dev, create project
hop new my_project --devel
cd my_project

# 3. Add extensions as needed
pip install half-orm-litestar-api
hop litestar-api init

# 4. Enhanced workflow
hop prepare -l patch
hop apply
hop litestar-api generate
hop release

Learning Path

๐Ÿš€ New to halfORM? 1. Start with halfORM Quick Start 2. Learn core concepts 3. Try the tutorial

๐Ÿ”ฅ Interested in development frameworks? 1. Learn about halfORM_dev vision 2. Review the guidelines 3. Consider contributing

โšก Want to contribute or follow development? Follow progress on the extension development

Use Cases

๐ŸŽฏ Core halfORM Only

Perfect for: - Existing applications - Add powerful PostgreSQL ORM - Microservices - Lightweight database layer
- Data analysis - Explore and manipulate data - Custom integrations - Build your own tooling

# Clean, direct database access
from half_orm.model import Model

analytics = Model('analytics_db')
Events = analytics.get_relation_class('public.events')

# Powerful querying without framework overhead
daily_stats = (Events(date=('>', '2024-01-01'))
               .ho_order_by('date')
               .ho_select('date', 'count', 'revenue'))

๐Ÿ› ๏ธ halfORM_dev Framework

Vision for: - New applications - Complete development lifecycle - Team projects - Standardized workflow and structure - Database evolution - Managed schema changes - Production deployments - Automated patch system

# Envisioned development workflow
hop new company_app --devel
hop prepare -l minor -m "Add payment system"
# ... develop and test ...
hop release --push

๐Ÿงฉ Extended Ecosystem

Vision for: - API-first applications - Automatic REST/GraphQL generation - Admin panels - Ready-made management interfaces - Monitoring - Built-in observability - Custom workflows - Extensible framework

# Envisioned rich development experience
pip install half-orm-litestar-api half-orm-admin
hop litestar-api generate --openapi
hop admin setup --auth

Why halfORM Ecosystem?

Database-First Philosophy

Unlike code-first ORMs, halfORM puts your PostgreSQL database at the center:

โœ… Schema in SQL - Use PostgreSQL's full power
โœ… No migrations - Schema changes happen in SQL
โœ… Instant integration - Works with existing databases
โœ… SQL transparency - See exactly what queries run

Modular Architecture

Choose exactly what you need:

โœ… Core only - Lightweight ORM for specific use cases
โœ… Development framework - Complete project management
โœ… Extensions - Add functionality incrementally
โœ… Custom extensions - Build your own tools

Production Ready

Built for real applications:

โœ… Mature core - Stable API, extensive testing
โœ… Patch system - Safe database evolution
โœ… Git integration - Professional development workflow
โœ… Deployment tools - Production-tested processes

Extension Development

For Extension Developers

The halfORM ecosystem welcomes contributions! Building extensions is straightforward:

# half_orm_myextension/hop_extension.py
def add_commands(hop_main_group):
    @hop_main_group.group()
    def myfeature():
        """My custom functionality"""
        pass

    @myfeature.command()
    def generate():
        """Generate my custom output"""
        # Your extension logic here
        pass

๐Ÿ“– Extension Development Guide โ†’

Standards and Guidelines

Community and Support

Get Involved

Resources

Roadmap and Vision

Current Reality

  • โœ… halfORM Core - Stable production release
  • ๐Ÿงช halfORM_dev - Early alpha with breaking changes expected
  • ๐Ÿงช half-orm-litestar-api - Proof of concept stage
  • ๐Ÿ“‹ Extension ecosystem - Guidelines and architecture planning

Development Focus

  • ๐ŸŽฏ Stabilizing halfORM_dev architecture
  • ๐ŸŽฏ Plugin system implementation
  • ๐ŸŽฏ Extension development standards
  • ๐ŸŽฏ Community feedback and iteration

Future Vision

  • ๐Ÿš€ Mature development framework
  • ๐Ÿš€ Rich ecosystem of community extensions
  • ๐Ÿš€ Enterprise-grade tooling
  • ๐Ÿš€ Advanced integrations and workflows

Note: This ecosystem represents our vision for the future of halfORM development tools. Current implementations are experimental and subject to significant changes.

Getting Help

Documentation Paths

Support Channels


The halfORM ecosystem brings the power of PostgreSQL to modern Python development with tools that respect your database design and enhance your development workflow.

Ready to get started? Install halfORM โ†’ or Explore the halfORM_dev vision โ†’