---
icon: log
title: 'Migration Guide'
order: 22
---

## Overview

v2.0 branch is a complete refactor of pocketpy in C11,
which enables users to run pocketpy on platforms that do not support C++.
Also we redesign the core interpreter to be more efficient and maintainable
by using modern C11 language features.
This document describes the API changes from v1.x to v2.0.

## API compatibility

|  name | v1.x | v2.0 |
| --- | --- | --- |
| legacy C++ API (v1.x only) | ✅ | ❌ |
| legacy C API (v1.x only) | ✅ | ❌ |
| C11 API (v2.0 only) | ❌ | ✅ |
| pybind11 API (both) | ✅ | ✅ |

## Suggestions

- If you are a C++ user
    - Use **pybind11 API** if you want to upgrade to v2.0 in the future
    - Use **legacy C++ API** if you want to stay in v1.x
- If you are a C user
    - Use **v2.0's C11 API** (will be available soon)
    - Use **legacy C API** if you want to stay in v1.x
