Scheme Requests for Implementation

SRFI logo

The purpose of the Scheme Requests for Implementation (SRFI) process is to help Scheme users write portable, useful code. We write concrete, detailed proposals and sample implementations for libraries and other additions to the Scheme language, and we encourage Scheme implementors to adopt them.

If you're interested in reading existing proposals, writing a new one (template), providing feedback on a draft proposal, helping with a sample implementation, or reporting a bug, please read about our process, skim our FAQ, and subscribe to some of our mailing lists, including srfi-announce, srfi-discuss, and srfi-auto-subscribe (subscribes to almost everything). (You must subscribe in order to post messages.)



Every SRFI is hosted on Github, but if you'd like a complete archive of all SRFI documents and code, please download srfi.tgz.

The SRFI process has been important to the development of some of the official Scheme standards, including R6RS and R7RS. It has been running since 1998, and there have been many different editors.

At the 2018 Scheme Workshop, SRFI editor Arthur A. Gleckler gave a talk entitled Growing Schemes: Twenty Years of Scheme Requests for Implementation (YouTube, PDF) on SRFI, its history, and future plans.

Here's a graph of the total number of SRFIs since SRFI 0 was published on 1999/1/5:

Here is our privacy statement.

If you have any general questions about this site, please contact the SRFI editors.