A R6RS-conforming Scheme implementation for the .NET platform with over 99% specification compliance.
IronScheme is a Scheme programming language implementation that conforms to the R6RS standard and runs on the .NET platform. It provides a functional programming language environment that integrates with Microsoft's technology stack, implementing over 99% of the R6RS specification. The project enables developers to write Scheme code that can interact with .NET libraries and be called from C# applications.
.NET developers who want to use Scheme as a functional programming language within their applications, and Scheme programmers who need to work within the .NET ecosystem.
IronScheme offers one of the most complete R6RS Scheme implementations available for .NET, with excellent standards compliance and cross-platform support. Its tight integration with the .NET runtime allows seamless interoperability between Scheme and other .NET languages.
IronScheme
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements over 99% of the R6RS specification and specified behavior, as stated in the README, making it one of the most compliant Scheme implementations for .NET.
Can be referenced as a library from C# and other .NET languages, allowing direct interoperability and scripting capabilities within .NET applications.
Runs on Windows, Linux, and macOS via .NET Framework, .NET Core, and Mono, as detailed in the building and running instructions for various platforms.
Supports precompilation of Scheme libraries on supported frameworks like .NET Framework and .NET 9.0+, improving startup and runtime performance.
Building requires specific .NET SDK versions, multiple steps with different commands for Windows vs. non-Windows, and handling of submodules, as outlined in the README's building sections.
The maintainer explicitly states not actively monitoring GitHub and requires being tagged on issues or Twitter, leading to potential delays in bug fixes and feature requests.
Performance may be impacted by the .NET runtime, and precompilation is restricted to specific frameworks, limiting flexibility in deployment scenarios.
There are known failure cases in the R6RS test suite, as mentioned in the running tests section, indicating areas where specification compliance is not fully achieved.