prisma/prisma
Glossary
Prisma has its own vocabulary, and some of it has shifted with Prisma 7. Use this page to disambiguate terms before reading other pages.
Core concepts
Prisma schema (schema.prisma) — the user-facing schema file written in Prisma Schema Language (PSL). Contains datasource, generator, and model blocks. Parsed by the Wasm PSL parser in @prisma/prisma-schema-wasm.
prisma.config.ts — the project configuration file introduced in Prisma 7. Replaces datasource URLs / env() in the schema. Loaded by packages/config into a PrismaConfigInternal object that the rest of the toolkit reads.
PSL (Prisma Schema Language) — the DSL used in .prisma files. Has its own parser/validator/formatter, all in Rust, exposed through @prisma/prisma-schema-wasm.
DMMF (Datamodel Meta Format) — the AST representation of a Prisma schema, in JSON. Generated by getDMMF (which calls into the Wasm parser) and consumed by client generators. Defined in packages/dmmf. Note: DMMF is internal with no stability guarantees across minor versions.
Prisma Client — the type-safe query builder generated for each project. The runtime lives in packages/client; the code that emits a Client lives in packages/client-generator-ts (new) or packages/client-generator-js (legacy).
Prisma Migrate — the migrations toolchain (prisma migrate dev, prisma db push, etc.). Implementation in packages/migrate. Talks to the Schema Engine native binary.
Engine vocabulary
Prisma 7 has dropped the term "query engine" entirely. If you see it in older docs or code, mentally translate it to the new architecture below.
Schema Engine — a Rust binary (downloaded by @prisma/engines) that owns introspection, diffing, and migration application. Migrate spawns it as a subprocess and speaks JSON-RPC over stdio (packages/migrate/src/SchemaEngineCLI.ts). A Wasm transport variant exists in SchemaEngineWasm.ts.
Query compiler — the Wasm module from @prisma/query-compiler-wasm. Takes a JSON-protocol query and produces a query plan. Used by ClientEngine in packages/client/src/runtime/core/engines/client/.
Query plan — the intermediate representation produced by the query compiler and consumed by the Query interpreter in packages/client-engine-runtime/src/interpreter/query-interpreter.ts. Type defined in packages/client-engine-runtime/src/query-plan.ts.
ClientEngine — the orchestrator inside Prisma Client that runs query compilation and execution. Lives in packages/client/src/runtime/core/engines/client/ClientEngine.ts. Has two executor implementations: LocalExecutor (driver adapter, direct DB) and RemoteExecutor (Accelerate / Data Proxy).
Driver adapters
Driver adapter — a small package that wraps an existing JS database driver (pg, @neondatabase/serverless, @libsql/client, mssql, etc.) and exposes the SqlDriverAdapter contract from @prisma/driver-adapter-utils. The user passes one to new PrismaClient({ adapter }).
SqlQueryable — the lowest-level adapter interface (queryRaw, executeRaw). Defined in packages/driver-adapter-utils/src/types.ts. Composed into SqlDriverAdapter and Transaction interfaces.
MappedError — the normalized error shape adapters produce. Each adapter's errors.ts (e.g., packages/adapter-pg/src/errors.ts) maps DB-specific codes to a MappedError kind, which rethrowAsUserFacing in packages/client-engine-runtime/src/user-facing-error.ts turns into Prisma's P2xxx error codes.
Generators
prisma-client — the new generator implemented in packages/client-generator-ts. Produces TypeScript output suitable for modern bundlers and ESM, with Wasm-only runtime.
prisma-client-js — the legacy generator in packages/client-generator-js. Still supported and used by older user projects.
Generator registry — packages/client-generator-registry. Hosts the metadata needed to look up and dispatch generators by name.
Generator helper — packages/generator-helper. The IPC contract used by external (out-of-tree) generators. They speak JSON-RPC to the CLI, which is how third-party generators integrate.
Runtime types
Driver Adapter Utils (@prisma/driver-adapter-utils) — the package every adapter depends on. Defines Provider ('mysql' | 'postgres' | 'sqlite' | 'sqlserver'), SqlQuery, SqlQueryable, SqlDriverAdapter, Transaction, MappedError, and ConnectionInfo.
Client common (@prisma/client-common) — shared utilities used by both generators and the runtime.
Client runtime utils (@prisma/client-runtime-utils) — utility types and singletons used inside generated clients.
@prisma/ts-builders — fluent API for emitting TypeScript code. Used by generators to produce .d.ts and .ts output.
Operational vocabulary
Driver flavor — one of the CI test dimensions. Values include js_pg, js_neon, js_libsql, js_planetscale, js_d1, js_better_sqlite3, js_mssql, js_mariadb, js_pg_cockroachdb. Used to parameterize functional tests.
Provider — the database flavor declared in a Prisma schema's datasource block. Always one of postgresql, mysql, sqlite, sqlserver, mongodb, or cockroachdb. (At the driver-adapter layer the spelling is postgres/mysql/sqlite/sqlserver.)
Functional test matrix — the dimension product defined per test under packages/client/tests/functional/<test>/_matrix.ts. See Testing.
Sandbox project — one of the pre-wired example projects in sandbox/ (e.g., basic-sqlite) used as a starting point for reproductions.
integration tag — the npm dist-tag where pre-release builds end up when a branch starts with integration/ or a PR has /integration in its description. Documented in CONTRIBUTING.md and driven by .github/workflows/release-ci.yml.
Conventions
Wasm, not "WASM" — the codebase prefers the official capitalization. Fix incidental "WASM" you see while editing nearby code.
Kebab-case file names — new TypeScript files in this repo are kebab-cased (query-utils.ts, not QueryUtils.ts).
No barrel files — index.ts files that re-export from sibling modules are discouraged for new code. Import from the source file directly (unless an index.ts already exists in that directory).
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.