A Go framework to simplify CRUD operations for arbitrarily deep structured data using graph concepts.
Gocrud is a Go framework that simplifies CRUD operations for deeply nested structured data using graph concepts. It enables developers to quickly build REST services by handling complex parent-child relationships and providing a flexible, storage-agnostic architecture. The framework eliminates the need to write repetitive CRUD code and allows easy switching between databases and search engines.
Go developers building backend services with complex data relationships, particularly those in startups or projects where data structures evolve rapidly and database flexibility is important.
Developers choose Gocrud for its ability to model arbitrary depth data with graph-like operations without locking into a specific database, combined with built-in data integrity features like versioning and authorship tracking.
Go framework to simplify CRUD of structured data using Graph operations
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Models parent-child relationships and traverses nested data without a graph database, as demonstrated in the example with posts, comments, and likes.
Supports multiple databases via a simple interface, allowing easy switching between LevelDB, MySQL, PostgreSQL, etc., based on the datastore table in the README.
Implements versioning, authorship tracking, and soft deletion for all edits, ensuring audit trails and data retention as per the framework principles.
Uses goroutines to fetch all children in parallel, improving retrieval performance for nested data, as highlighted in the performance considerations.
Several supported databases like MySQL and PostgreSQL lack full functionality, specifically the 'Iterate' method, as admitted in the README's datastore table.
The master branch contains breaking changes, and users must use gopkg.in for stable versions, indicating potential instability and maintenance overhead.
Search engine integration is sparse; for instance, only Elasticsearch has a driver available, while Solr support is missing, limiting options.
Gocrud does not use dependency management tools, placing the burden on users to ensure compatibility and build reproducibility, as noted in the README.