pybind11
open_spiel
Our great sponsors
pybind11 | open_spiel | |
---|---|---|
42 | 44 | |
14,626 | 3,969 | |
1.8% | 1.4% | |
8.7 | 9.4 | |
6 days ago | 2 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | Apache License 2.0 |
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.
pybind11
-
Experience using crow as web server
I'm investigating using C++ to build a REST server, and would love to know of people's experiences with Crow-- or whether they would recommend something else as a "medium-level" abstraction C++ web server. As background, I started off experimenting with Python/FastAPI, which is great, but there is too much friction to translate from pybind11-exported C++ objects to the format that FastAPI expects, and, of course, there are inherent performance limitations using Python, which could impact scaling up if the project were to be successful.
- Swig – Connect C/C++ programs with high-level programming languages
-
I created smooth_lines python module, great for drawing software
This is based on the Google Ink Stroke Modeler C++ library, and using pybind11 to make it available on python.
-
Using pybind11 with minGW to cross compile pyhton module for Windows
I have a python module for which the logic is written in C++ and I use pybind11 to expose the objects and functions to Python.
-
IPC communication between rust, c++, and python
Reading from Python requires a wrapper, using pybind11 this is fairly done.
-
Is Pycharm an okay IDE to use?
That said, if you need to write a Python module in a compiled language, it's much easier and more fun these days to write in C++. pybind11 is extremely mature and even fun system to write Python objects in C++.
-
Roast my resume
There will be specific technologies you used in your data pipelining: Parquet? Did you use Pandas to manipulate your data? Did you optimise some aspects with C++? If so did you use PyBind11 to integrate it?
-
Pybind11 error | Compatibility and/or Linker issue | Mac M1 (But running X86_64 using Rosetta 2)
git clone https://github.com/pybind/pybind11.git
-
How to make C++ communicate with Python?
I would say that pybind11 is precisely what you want here. If you don’t want to write the bindings yourself, you could try Tolc.
Pybind11 https://github.com/pybind/pybind11 is an easy way to expose c++ functions in python.
open_spiel
-
Competitive reinforcement learning for turn-based games
Hi, you can check out OpenSpiel: https://github.com/deepmind/open_spiel/
-
Shimmy 1.0: Gymnasium & PettingZoo bindings for popular external RL environments
This includes single-agent Gymnasium wrappers for DM Control, DM Lab, Behavior Suite, Arcade Learning Environment, OpenAI Gym V21 & V26. Multi-agent PettingZoo wrappers support DM Control Soccer, OpenSpiel and Melting Pot. For more information, read the release notes here:
-
Policy for each of multi-agents in RL
The RL agents in OpenSpiel (https://github.com/deepmind/open_spiel) are designed with this setting as the default (so like, DQN run in Tic-Tac-Toe would have two separate agents learning against each other: one knows how to play as player 1, the other as player 2).
-
My comp sci mentor who is a university student half my age says that learning to use Linux is the optimal comp sci education experience
I maintain a project called OpenSpiel, basically a library/suite of implementations of board games (mainly for AI research but can be used for whatever). It has a C/C++ core, but it also exposes the core API in Python, Rust, Go, and Julia: https://github.com/deepmind/open_spiel/ and a lot of AI algorithms in Python.
-
Looking to get started
If you are looking for some programming game-theoretic algorithms, you can look at Gambit (http://www.gambit-project.org/) or OpenSpiel (https://github.com/deepmind/open_spiel). OpenSpiel has a Julia API too exposing the core and games, but does not have any of the basic game theoretic algorithms in Julia, so that would make a nice exercise (and maybe contribution to the project).
-
[D] Adding a new RL environment to envpool
I looked at the paper before and thought some of the benchmarks in the paper were cherry picked and that the whole let’s write env in compiled languages things has been done a lot already and only works well for games / physics / environments that are extremely well defined . I usually end up back in ray env bc I usually need features like parametric action spaces, or predictive models built inside environments, or historical data. Codingwise I looked at the example file that they had and felt like it wasn’t for me bc I don’t like Bazel ( I use pants for python monorepo ) and the c++ api was overly verbose for me. I don’t feel like I could implement reward shaping or env business logic in a very clear way. I don’t do much c++ dev work though and someone who is a seasoned c++ dev might not care. I liked the openspiel c++ api for env a lot more. https://github.com/deepmind/open_spiel/blob/master/docs/developer_guide.md I have found that building a new env can sometimes be frustrating to debug and I would probably debug a python env before converting to an openspiel/envpool env if I had to use a C++ env for a new problem.
-
Mastering Stratego, the classic game of imperfect information
I 404'ed when I tried to access the source code?
https://github.com/deepmind/open_spiel/tree/master/open_%20s...
Someone needs to create a web front end for this -- I would love to play it.
There's an extra space in the URL to their code (at the end of the article). The correct URL is: https://github.com/deepmind/open_spiel/tree/master/open_spie...
-
Looking for Deepmind implementation of Player of Games
This is a wild guess. I am fairly sure that internally Deepmind uses their own tool, OpenSpiel. The code is kind of dense because it does a lot, but probably most of the functionality that you are looking for is somewhere in there
What are some alternatives?
PyO3 - Rust bindings for the Python interpreter
nanobind - nanobind: tiny and efficient C++/Python bindings
Optional Argument in C++ - Named Optional Arguments in C++17
muzero-general - MuZero
PettingZoo - An API standard for multi-agent reinforcement learning environments, with popular reference environments and related utilities
setuptools-rust - Setuptools plugin for Rust support
gym - A toolkit for developing and comparing reinforcement learning algorithms.
PEGTL - Parsing Expression Grammar Template Library
sol2 - Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:
sparsehash - C++ associative containers
py2many - Transpiler of Python to many other languages
dynamic_bitset - Simple Useful Libraries: C++17/20 header-only dynamic bitset