NEW
Also known as: IDL
Specification language to describe interfaces and data types independent of programming languages.
DESCRIPTION
An IDL defines services, methods, messages, and data types decoupled from implementation languages. It enables code generation, compatibility checks, and stable API contracts in RPC frameworks and platform APIs. Examples include CORBA IDL, Web IDL, Apache Thrift, and Protocol Buffers schemas. Using IDLs promotes consistency across polyglot systems and eases versioning. Careful evolution and backward compatibility policies prevent breaking changes.
ALTERNATIVE DEFINITIONS
W3C
Web IDL defines a language that can be used to describe interfaces to be implemented in web browsers.
Targets browser-exposed APIs and bindings for JavaScript.
Object Management Group
IDL is a specification language used to describe the interface of software components.
Focuses on language-neutral interface description for components.
Apache Thrift
The Thrift IDL defines types and services in a language-neutral way.
Emphasizes language neutrality and cross-language code generation.
RELATED TERMS
API gRPC Apache Thrift Web IDL CORBA JSON Schema Avro
COMPETING TERMS
OpenAPI Specification WSDL Protocol Buffers
KNOWLEDGE AREAS
Software Engineering Platform & Tooling Data Integration & Interoperability
TARGET AUDIENCE
Software Developer Software Architect Solution Architect Data Engineer
EXTERNAL SOURCES
- Wikipedia - Interface description language
- W3C - Official Web IDL specification
- OMG - CORBA IDL specification
- Apache Thrift - Thrift IDL documentation
- Protocol Buffers - Proto3 language guide
TOP QUESTIONS
What problems does Interface Definition Language solve?
IDLs create language-neutral contracts, enabling cross-language interoperability, code generation, and stable APIs.
Category: Definition
How does Interface Definition Language differ from OpenAPI?
IDLs often target binary RPC and strict schemas, while OpenAPI focuses on HTTP/JSON REST API descriptions.
Category: Opinion
What are common IDL ecosystems?
CORBA IDL, Web IDL, Apache Thrift, and Protocol Buffers are widely used in different domains.
Category: Overview
How should versioning be handled in Interface Definition Language?
Use backward-compatible changes, reserve fields, and deprecations; avoid renaming or removing required semantics.
Category: Best practices
What risks arise from evolving Interface Definition Language schemas?
Breaking changes can disrupt clients, cause serialization errors, and fragment contracts across services.
Category: Risks
How does Interface Definition Language support code generation?
Compilers produce stubs and bindings for multiple languages, reducing boilerplate and maintaining consistency.
Category: Example
Where to start with Interface Definition Language?
Choose an ecosystem (Thrift, Protobuf, Web IDL), read the spec, and generate sample clients and servers.
Category: Requirements
Is Interface Definition Language only for RPC?
Primarily, yes, but IDL concepts also apply to platform APIs and schema-driven development.
Category: Misunderstanding
How does Interface Definition Language relate to JSON Schema?
Both describe structure, but IDLs typically define services and methods; JSON Schema focuses on data validation.
Category: Comparison