mirror of
				https://github.com/pocketpy/pocketpy
				synced 2025-10-31 08:50:17 +00:00 
			
		
		
		
	
		
			
				
	
	
	
		
			1.1 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.1 KiB
		
	
	
	
	
	
	
	
| title | icon | order | 
|---|---|---|
| Introduction | dot | 10 | 
What C-API is for
The C-APIs are designed for these purposes:
- Your target platform does not support C++17. You compile pkpy into a static library and use its exported C-APIs.
- You want to write a native module that can be imported via __import__at runtime. By using C-APIs, the module is portable across different compilers without C++ ABI compatibility issues.
Our C-APIs take a lot of inspiration from the lua C-APIs.
Methods return a bool indicating if the operation succeeded or not.
Special thanks for @koltenpearson's contribution.
!!! C-APIs are always stable and backward compatible. !!!
Basic functions
- 
pkpy_vm* pkpy_new_vm(bool enable_os)Wraps new VM(enable_os)in C++.
- 
void pkpy_delete_vm(pkpy_vm*)Wraps delete vmin C++.
- 
bool pkpy_exec(pkpy_vm*, const char* source)Wraps vm->exec. Execute a string of source code.
- 
bool pkpy_exec_2(pkpy_vm*, const char* source, const char* filename, int mode, const char* module)Wraps vm->exec_2. Execute a string of source code with more options.