Skip to content

apquinit/argo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Argo: A Powerful, Opinionated Web Framework for Go

Argo is a modern, powerful, and opinionated web framework for Go, designed to streamline the development of scalable and maintainable server applications. Inspired by the principles of efficiency, organization, and developer happiness, Argo offers a suite of features and tools that make it easier for teams to deliver exceptional software with ease.

Why the Name "Argo"? ⛵

1. AR + Go

The name combines "AR" (AR Data Tech) with "Go", the language it’s built on. This reflects both its foundation and its purpose: a clean, efficient framework built on Go's strengths to help developers build better applications.

2. The Legendary Ship

In Greek mythology, Argo was the ship that carried Jason and his crew on an epic journey to find the Golden Fleece. Just like the ship, this framework is designed to help developers navigate the challenges of web development and deliver something great.

So, Argo is all about building with Go, keeping things structured, and helping you "sail" through development smoothly!

Core Features

1. Developer-Friendly CLI

Argo's command-line interface (CLI) is at the heart of the framework, providing intuitive commands to help developers generate and manage projects. The CLI supports:

  • Project scaffolding: Quickly generate new server applications with pre-configured settings.
  • Boilerplate generation: Easily create controllers, models, migrations, and seeders.
  • Environment management: Built-in support for environment-specific configurations.

2. Built-In Database Management

Argo simplifies database management with:

  • Models: Define database models with struct tags for easy mapping.
  • Migrations: Automatically generate and manage database schema changes.
  • Seeders: Populate the database with initial or testing data.

3. Modular Architecture

Argo enforces a modular structure to keep projects organized and maintainable.

4. Built-In Routing

With support for route groups, middleware, and named routes, Argo makes defining and managing application routes straightforward.

5. Middleware Support

Easily integrate middleware for features like authentication, logging, or request validation. Argo provides default middleware but allows custom implementation for specific needs.

6. Efficient ORM

Argo integrates with GORM, providing a powerful and intuitive ORM for interacting with databases.

7. Dependency Injection

Built-in support for dependency injection (DI) makes it easier to manage application components and services.

8. Testing Utilities

Argo provides utilities to simplify writing unit tests, integration tests, and end-to-end tests.

Getting Started

Create a New Project

# Scaffold a new project
./create-argo-app new myproject

# Navigate to the project directory
cd myproject

Generate Resources

# Generate a new controller
./argo make:controller user

# Generate a new model
./argo make:model user

# Generate a new migration
./argo make:migration users

# Generate a new seeder
./argo make:seeder user

Run the Application

# Start the server
./argo serve

Local Setup

Prerequisites

  • Go 1.22.3 or later installed on your machine
  • Make installed on your machine

Building the Binaries

To build the binaries, you can use the provided Makefile. This will compile the argo-cli and create-argo-app binaries.

# Build the project
make

This command will:

  1. Build the argo-cli binary and place it in the create-argo-app directory.
  2. Embed the argo-cli binary, templates, and dependencies.yaml into the create-argo-app binary.

Cleaning Up

To clean up the generated binaries, you can use the clean target in the Makefile.

# Clean up binaries
make clean

This command will remove the argo-cli and create-argo-app binaries.

Roadmap

Planned Features

  • Plugin System: Extend the functionality of Argo with custom plugins.
  • REST and GraphQL API Support: Built-in tools for API development.
  • WebSocket Integration: Easy setup for real-time features.
  • Code Generators: Advanced generators for common patterns like services and repositories.
  • Performance Monitoring: Built-in support for monitoring and profiling applications.

Community and Contributions

Contributions are welcome! Join the community on GitHub to suggest features, report bugs, and collaborate on improving Argo..


With Argo, server development in Go has never been this efficient. Start building your next project today and experience the power of simplicity and scalability.

About

Argo is a powerful, opinionated web framework for Go, designed to make modern web development simpler, faster, and more organized.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors