# pyeve/eve

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/pyeve-eve).**

6,738 stars · 736 forks · Python · NOASSERTION

## Links

- GitHub: https://github.com/pyeve/eve
- Homepage: https://python-eve.org
- awesome-repositories: https://awesome-repositories.com/repository/pyeve-eve.md

## Description

Eve is a REST API framework that maps database collections to web resources through declarative configuration files. It functions as a database-to-API mapper, automatically exposing data as RESTful endpoints with built-in support for CRUD operations and schema-based request validation.

The project distinguishes itself through a HATEOAS API engine that generates hypermedia links and resource schemas for dynamic client discovery. It also includes an automated Swagger documentation generator that produces interactive specifications for client SDK generation and testing.

The framework provides a database-agnostic data layer with integrations for MongoDB, SQL, Neo4j, and Elasticsearch. Its capability surface extends to identity and access management via JWT token validation and role-based access control, as well as data integrity tools including aggregation pipelines, document version tracking, and inbound data validation.

Additional operational features include request rate limiting, CORS configuration, ETag concurrency management, and global cache control directives.

## Tags

### Data & Databases

- [Database-to-REST Interfaces](https://awesome-repositories.com/f/data-databases/database-to-rest-interfaces.md) — Automatically transforms database collections into RESTful API endpoints via declarative configuration.
- [API Result Filters](https://awesome-repositories.com/f/data-databases/api-result-filters.md) — Retrieves documents based on query strings using native database operators or conditional expressions. ([source](https://python-eve.org/features.html))
- [Data Persistence Management](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-persistence-management.md) — Connects API resources to database backends to manage the storage and retrieval of application data. ([source](https://cdn.jsdelivr.net/gh/pyeve/eve@main/README.md))
- [MongoDB Connectors](https://awesome-repositories.com/f/data-databases/data-ingestion/mongodb-connectors.md) — Provides native connectors to MongoDB for automated collection management and data serving. ([source](https://python-eve.org/quickstart.html))
- [Data Schema Definitions](https://awesome-repositories.com/f/data-databases/data-schema-definitions.md) — Uses declarative systems to define data structures and validation rules for incoming API resources. ([source](https://python-eve.org/config.html))
- [Data Sources](https://awesome-repositories.com/f/data-databases/data-sources.md) — Links API endpoints to specific database collections and defines default sorting or aggregation pipelines. ([source](https://python-eve.org/config.html))
- [Result Sorting](https://awesome-repositories.com/f/data-databases/result-sorting.md) — Orders returned documents by one or more fields via query parameters. ([source](https://python-eve.org/features.html))
- [SQL Database Connectivity](https://awesome-repositories.com/f/data-databases/sql-database-connectivity.md) — Utilizes a relational database mapper to expose SQL storage as RESTful web resources. ([source](https://python-eve.org/extensions.html))
- [ETag-Based Concurrency Controls](https://awesome-repositories.com/f/data-databases/concurrent-update-resolution/etag-based-concurrency-controls.md) — Prevents obsolete version overwrites using ETag checksums for optimistic concurrency control. ([source](https://python-eve.org/features.html))
- [Operation Constraints](https://awesome-repositories.com/f/data-databases/crud-operations/operation-constraints.md) — Restricts allowed HTTP methods at the resource and item levels to manage data access. ([source](https://python-eve.org/quickstart.html))
- [Document Versioning](https://awesome-repositories.com/f/data-databases/document-versioning.md) — Implements historical change tracking for documents using shadow collections to manage different data versions. ([source](https://python-eve.org/features.html))
- [Elasticsearch Client Integrations](https://awesome-repositories.com/f/data-databases/elasticsearch-client-integrations.md) — Integrates with Elasticsearch to provide a high-performance search index as a primary data layer. ([source](https://python-eve.org/extensions.html))
- [Graph Database Integrations](https://awesome-repositories.com/f/data-databases/external-storage-integrations/database-backend-integration/graph-database-integrations.md) — Connects API resources to Neo4j graph databases to power network-based data services. ([source](https://python-eve.org/extensions.html))
- [Field Projections](https://awesome-repositories.com/f/data-databases/field-projections.md) — Allows clients to request only a subset of document fields in the API response to reduce data volume. ([source](https://python-eve.org/features.html))
- [Bulk Data Ingestion](https://awesome-repositories.com/f/data-databases/insert-operations/bulk-data-ingestion.md) — Supports inserting multiple records in a single request to optimize performance and reduce overhead. ([source](https://python-eve.org/features.html))
- [Automatic Specification Generators](https://awesome-repositories.com/f/data-databases/openapi-processors/automatic-specification-generators.md) — Automatically derives Swagger/OpenAPI specifications from the resource configuration.
- [Optimistic Concurrency Control](https://awesome-repositories.com/f/data-databases/optimistic-concurrency-control.md) — Prevents data conflicts during updates using concurrency and versioning controls. ([source](https://cdn.jsdelivr.net/gh/pyeve/eve@main/README.md))
- [Schemaless Data Support](https://awesome-repositories.com/f/data-databases/schemaless-data-support.md) — Allows the storage of fields not defined in the schema while still validating known attributes. ([source](https://python-eve.org/validation.html))
- [Aggregation Pipelines](https://awesome-repositories.com/f/data-databases/search-result-aggregators/aggregation-pipelines.md) — Provides server-side aggregation pipelines for grouping, filtering, and transforming database result sets. ([source](https://python-eve.org/features.html))

### Web Development

- [Dynamic REST API Generators](https://awesome-repositories.com/f/web-development/api-management-tools/api-development-management/api-generation/dynamic-rest-api-generators.md) — Automatically translates database collections into RESTful endpoints using declarative configuration files. ([source](https://python-eve.org/quickstart.html))
- [REST API Frameworks](https://awesome-repositories.com/f/web-development/rest-api-frameworks.md) — Provides a framework for building RESTful web services by mapping database collections to endpoints via declarative configuration.
- [API Resource Mapping](https://awesome-repositories.com/f/web-development/api-resource-mapping.md) — Maps database collections to customizable API endpoints, including support for hierarchical sub-resources. ([source](https://python-eve.org/features.html))
- [CRUD Endpoint Exposure](https://awesome-repositories.com/f/web-development/crud-endpoint-exposure.md) — Automatically exposes database collections as RESTful endpoints supporting standard Create, Read, Update, and Delete operations. ([source](https://python-eve.org/features.html))
- [Data Validation](https://awesome-repositories.com/f/web-development/data-validation.md) — Validates incoming request payloads against predefined schemas to ensure data integrity before persistence. ([source](https://python-eve.org/features.html))
- [HATEOAS Implementations](https://awesome-repositories.com/f/web-development/hateoas-implementations.md) — Implements a HATEOAS API engine that generates hypermedia links for dynamic client discovery.
- [RESTful API Development](https://awesome-repositories.com/f/web-development/restful-api-development.md) — Provides a framework for building RESTful web services by mapping database collections to resources.
- [Schema Validation](https://awesome-repositories.com/f/web-development/schema-validation.md) — Implements a validation layer that ensures incoming request payloads conform to predefined types and constraints before database persistence.
- [Interactive Document Generators](https://awesome-repositories.com/f/web-development/api-schema-endpoints/interactive-document-generators.md) — Automatically produces interactive Swagger specifications to enable API discovery and client SDK generation.
- [API Schema Exposure](https://awesome-repositories.com/f/web-development/api-schema-exposure.md) — Serves read-only definitions of all public data structures through a dedicated network endpoint. ([source](https://python-eve.org/features.html))
- [Custom API Endpoints](https://awesome-repositories.com/f/web-development/custom-api-endpoints.md) — Provides custom routes that allow retrieving resources using specific fields instead of default identifiers. ([source](https://python-eve.org/quickstart.html))
- [Incoming Request Field Filters](https://awesome-repositories.com/f/web-development/incoming-request-field-filters.md) — Allows querying data using specific fields with server-side validation and whitelisting to prevent unauthorized enumeration. ([source](https://python-eve.org/config.html))
- [Interactive API Documentation UIs](https://awesome-repositories.com/f/web-development/interactive-api-documentation-uis.md) — Generates interactive Swagger UI documentation from API specifications for testing and discovery. ([source](https://python-eve.org/extensions.html))
- [Limit Offset Pagination](https://awesome-repositories.com/f/web-development/limit-offset-pagination.md) — Limits the number of items returned in a single request and provides navigation links to subsequent pages. ([source](https://python-eve.org/features.html))
- [Referenced Resource Embedding](https://awesome-repositories.com/f/web-development/referenced-resource-embedding.md) — Includes full documents from related resources within a response instead of providing only a reference identifier. ([source](https://python-eve.org/features.html))

### Security & Cryptography

- [API Security Management](https://awesome-repositories.com/f/security-cryptography/api-security-management.md) — Manages API access control through JWT authentication, role-based permissions, and request rate limiting.
- [Identity-Based Access Restrictions](https://awesome-repositories.com/f/security-cryptography/domain-access-restrictions/administrative-access-restrictions/identity-based-access-restrictions.md) — Restricts request access using credentials and tokens to verify and authorize user identities. ([source](https://python-eve.org/tutorials/index.html))
- [Role-Based Access Control](https://awesome-repositories.com/f/security-cryptography/role-based-access-control.md) — Restricts HTTP methods and resource visibility based on assigned user roles and permissions. ([source](https://python-eve.org/authentication.html))
- [JWT Authentications](https://awesome-repositories.com/f/security-cryptography/token-authentication/jwt-authentications.md) — Secures endpoints by validating signed JSON Web Tokens issued during authentication. ([source](https://python-eve.org/extensions.html))
- [Endpoint Authentication](https://awesome-repositories.com/f/security-cryptography/api-access-control/endpoint-controls/endpoint-authentication.md) — Applies authentication requirements and security policies globally or to specific API endpoints. ([source](https://python-eve.org/authentication.html))
- [Request Rate Limiting](https://awesome-repositories.com/f/security-cryptography/request-rate-limiting.md) — Caps the number of requests a user can make within a time window to prevent service abuse. ([source](https://python-eve.org/features.html))
- [User-Based Access Restrictions](https://awesome-repositories.com/f/security-cryptography/user-access-management/user-based-access-restrictions.md) — Ensures users can only view or modify records they created by validating requests against user identifiers. ([source](https://python-eve.org/authentication.html))

### Software Engineering & Architecture

- [Hypermedia Link Generation](https://awesome-repositories.com/f/software-engineering-architecture/api-schema-discovery/hypermedia-link-generation.md) — Generates hypermedia links and resource schemas within responses to enable dynamic client discovery.
- [Data Schema Validation](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-validation.md) — Enforces data integrity through schema-based validation of types and constraints before database storage.
- [Data Validation Schemas](https://awesome-repositories.com/f/software-engineering-architecture/data-validation-schemas.md) — Enforces data integrity by validating incoming request payloads against predefined schemas.
- [Database Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/database-abstraction-layers.md) — Abstracts storage operations to allow the same API logic to work across document, graph, and relational databases.
- [Declarative Resource Mapping](https://awesome-repositories.com/f/software-engineering-architecture/declarative-resource-mapping.md) — Maps database collections to HTTP endpoints using a declarative configuration file to define API structure.
- [HATEOAS Implementations](https://awesome-repositories.com/f/software-engineering-architecture/hateoas-implementations.md) — Includes hypermedia links in responses to help clients discover and navigate the API dynamically. ([source](https://python-eve.org/features.html))
- [Automated API Documentation](https://awesome-repositories.com/f/software-engineering-architecture/automated-api-documentation.md) — Automatically generates Swagger specifications and interactive interfaces from the resource configuration.
- [Custom Validation Extensions](https://awesome-repositories.com/f/software-engineering-architecture/custom-validation-extensions.md) — Allows the addition of custom business algorithms to the schema validation system. ([source](https://python-eve.org/features.html))
- [Collection Partitioning](https://awesome-repositories.com/f/software-engineering-architecture/feature-to-documentation-mappings/api-endpoint-mappings/collection-partitioning.md) — Routes different API endpoints to the same database collection using distinct filters to partition data access. ([source](https://python-eve.org/config.html))
- [Lifecycle Event Hooks](https://awesome-repositories.com/f/software-engineering-architecture/lifecycle-event-hooks.md) — Triggers custom logic at specific stages of the request lifecycle to modify data or perform side effects. ([source](https://python-eve.org/snippets/index.html))
- [Middleware Lifecycle Hooks](https://awesome-repositories.com/f/software-engineering-architecture/middleware-lifecycle-hooks.md) — Provides pluggable middleware hooks to intercept and modify the request lifecycle.
- [Data Access Filters](https://awesome-repositories.com/f/software-engineering-architecture/naming-conventions/reserved-names/access-restrictions/data-access-filters.md) — Restricts API endpoints to only expose or update records that match specific query filters. ([source](https://python-eve.org/features.html))

### Development Tools & Productivity

- [URI Resource Identifiers](https://awesome-repositories.com/f/development-tools-productivity/identifier-generators/uri-resource-identifiers.md) — Configures custom fields or unique identifiers to identify records within the API. ([source](https://python-eve.org/tutorials/index.html))

### Programming Languages & Runtimes

- [Field Projections](https://awesome-repositories.com/f/programming-languages-runtimes/block-value-returns/method-return-values/return-value-transformers/return-values/field-projections.md) — Supports field projections to restrict the subset of document fields returned in API responses.
- [JSON-to-Schema Generators](https://awesome-repositories.com/f/programming-languages-runtimes/json-schema-converters/json-schema-generators/json-to-schema-generators.md) — Creates starting data definitions from JSON documents to accelerate the API design process. ([source](https://python-eve.org/extensions.html))

### Part of an Awesome List

- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — REST API framework powered by Flask and MongoDB.
