piston VS asteval

Compare piston vs asteval and see what are their differences.

piston

A high performance general purpose code execution engine. (by engineer-man)

asteval

minimalistic evaluator of python expression using ast module (by newville)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
piston asteval
19 3
1,747 0
3.2% -
6.1 7.0
9 days ago about 2 months ago
JavaScript Python
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

piston

Posts with mentions or reviews of piston. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-07-12.

asteval

Posts with mentions or reviews of asteval. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-30.
  • evalidate - Safe evaluation of untrusted user-supplied python expression
    2 projects | /r/Python | 30 May 2023
    There is asteval project. It makes more poweful (ans slower) virtual python interpreter which you can use to run many commands in shared context. My benchmark (100 000 runs of simple python expressions):
  • evalidate: secure eval() for python
    2 projects | dev.to | 27 Oct 2022
    If compare to asteval (which is actually has much more features), evalidate is much faster in my benchmarks (benchmark code in repo): 0.017s vs 1.232s
  • A simple, kind-of "safe" eval ?
    3 projects | /r/learnpython | 15 Aug 2021
    But, literals are not good enough very often, and one may want to do "len(foo)+bar[i]" , so I went searching trying to find a good implementation. I dug and found asteval, but this issue I raised breaks it for me, apart from the fact that I try not to rely on too many modules beyond the standard library + it has a bunch of peculiarities that make it not a real drop-in replacement to eval().

What are some alternatives?

When comparing piston and asteval you can also consider the following projects:

snekbox - Easy, safe evaluation of arbitrary Python code

sysbox - An open-source, next-generation "runc" that empowers rootless containers to run workloads such as Systemd, Docker, Kubernetes, just like VMs.

vermin - Concurrently detect the minimum Python versions needed to run code

pyodide - Pyodide is a Python distribution for the browser and Node.js based on WebAssembly

klara - Automatic test case generation for python and static analysis library

compilers - 📦 Docker image with installed compilers, interpreters and sandbox.

vectorboard - Open Source Embeddings Optimisation and Eval Framework for RAG/LLM Applications. Documentations at https://docs.vectorboard.ai/introduction

sandman - execute and test code of various languages within a sandbox runtime that provides a virtualized container environment.

evalidate - Safe and fast evaluation of untrusted user-supplied python expressions

shelljs - :shell: Portable Unix shell commands for Node.js

TheAlgorithms - All Algorithms implemented in Python