README.md (12037:d28054ac6ec9) README.md (14299:2fbea9df56d2)
1![pybind11 logo](https://github.com/pybind/pybind11/raw/master/docs/pybind11-logo.png)
2
3# pybind11 — Seamless operability between C++11 and Python
4
5[![Documentation Status](https://readthedocs.org/projects/pybind11/badge/?version=master)](http://pybind11.readthedocs.org/en/master/?badge=master)
6[![Documentation Status](https://readthedocs.org/projects/pybind11/badge/?version=stable)](http://pybind11.readthedocs.org/en/stable/?badge=stable)
7[![Gitter chat](https://img.shields.io/gitter/room/gitterHQ/gitter.svg)](https://gitter.im/pybind/Lobby)
8[![Build Status](https://travis-ci.org/pybind/pybind11.svg?branch=master)](https://travis-ci.org/pybind/pybind11)

--- 37 unchanged lines hidden (view full) ---

46- Instance attributes and static attributes
47- Arbitrary exception types
48- Enumerations
49- Callbacks
50- Iterators and ranges
51- Custom operators
52- Single and multiple inheritance
53- STL data structures
1![pybind11 logo](https://github.com/pybind/pybind11/raw/master/docs/pybind11-logo.png)
2
3# pybind11 — Seamless operability between C++11 and Python
4
5[![Documentation Status](https://readthedocs.org/projects/pybind11/badge/?version=master)](http://pybind11.readthedocs.org/en/master/?badge=master)
6[![Documentation Status](https://readthedocs.org/projects/pybind11/badge/?version=stable)](http://pybind11.readthedocs.org/en/stable/?badge=stable)
7[![Gitter chat](https://img.shields.io/gitter/room/gitterHQ/gitter.svg)](https://gitter.im/pybind/Lobby)
8[![Build Status](https://travis-ci.org/pybind/pybind11.svg?branch=master)](https://travis-ci.org/pybind/pybind11)

--- 37 unchanged lines hidden (view full) ---

46- Instance attributes and static attributes
47- Arbitrary exception types
48- Enumerations
49- Callbacks
50- Iterators and ranges
51- Custom operators
52- Single and multiple inheritance
53- STL data structures
54- Iterators and ranges
55- Smart pointers with reference counting like ``std::shared_ptr``
56- Internal references with correct reference counting
57- C++ classes with virtual (and pure virtual) methods can be extended in Python
58
59## Goodies
60In addition to the core functionality, pybind11 provides some extra goodies:
61
62- Python 2.7, 3.x, and PyPy (PyPy2.7 >= 5.7) are supported with an

--- 19 unchanged lines hidden (view full) ---

82 against any additional libraries.
83
84- Binaries are generally smaller by a factor of at least 2 compared to
85 equivalent bindings generated by Boost.Python. A recent pybind11 conversion
86 of PyRosetta, an enormous Boost.Python binding project,
87 [reported](http://graylab.jhu.edu/RosettaCon2016/PyRosetta-4.pdf) a binary
88 size reduction of **5.4x** and compile time reduction by **5.8x**.
89
54- Smart pointers with reference counting like ``std::shared_ptr``
55- Internal references with correct reference counting
56- C++ classes with virtual (and pure virtual) methods can be extended in Python
57
58## Goodies
59In addition to the core functionality, pybind11 provides some extra goodies:
60
61- Python 2.7, 3.x, and PyPy (PyPy2.7 >= 5.7) are supported with an

--- 19 unchanged lines hidden (view full) ---

81 against any additional libraries.
82
83- Binaries are generally smaller by a factor of at least 2 compared to
84 equivalent bindings generated by Boost.Python. A recent pybind11 conversion
85 of PyRosetta, an enormous Boost.Python binding project,
86 [reported](http://graylab.jhu.edu/RosettaCon2016/PyRosetta-4.pdf) a binary
87 size reduction of **5.4x** and compile time reduction by **5.8x**.
88
90- When supported by the compiler, two new C++14 features (relaxed constexpr and
91 return value deduction) are used to precompute function signatures at compile
92 time, leading to smaller binaries.
89- Function signatures are precomputed at compile time (using ``constexpr``),
90 leading to smaller binaries.
93
94- With little extra effort, C++ types can be pickled and unpickled similar to
95 regular Python objects.
96
97## Supported compilers
98
991. Clang/LLVM 3.3 or newer (for Apple Xcode's clang, this is 5.0.0 or newer)
1002. GCC 4.8 or newer
1013. Microsoft Visual Studio 2015 Update 3 or newer
91
92- With little extra effort, C++ types can be pickled and unpickled similar to
93 regular Python objects.
94
95## Supported compilers
96
971. Clang/LLVM 3.3 or newer (for Apple Xcode's clang, this is 5.0.0 or newer)
982. GCC 4.8 or newer
993. Microsoft Visual Studio 2015 Update 3 or newer
1024. Intel C++ compiler 16 or newer (15 with a [workaround](https://github.com/pybind/pybind11/issues/276))
1004. Intel C++ compiler 17 or newer (16 with pybind11 v2.0 and 15 with pybind11 v2.0 and a [workaround](https://github.com/pybind/pybind11/issues/276))
1035. Cygwin/GCC (tested on 2.5.1)
104
105## About
106
107This project was created by [Wenzel Jakob](http://rgl.epfl.ch/people/wjakob).
108Significant features and/or improvements to the code were contributed by
109Jonas Adler,
1015. Cygwin/GCC (tested on 2.5.1)
102
103## About
104
105This project was created by [Wenzel Jakob](http://rgl.epfl.ch/people/wjakob).
106Significant features and/or improvements to the code were contributed by
107Jonas Adler,
108Lori A. Burns,
110Sylvain Corlay,
111Trent Houliston,
112Axel Huebl,
113@hulucc,
114Sergey Lyskov
115Johan Mabille,
116Tomasz Miąsko,
117Dean Moldovan,
118Ben Pritchard,
119Jason Rhinelander,
120Boris Schäling,
121Pim Schellart,
109Sylvain Corlay,
110Trent Houliston,
111Axel Huebl,
112@hulucc,
113Sergey Lyskov
114Johan Mabille,
115Tomasz Miąsko,
116Dean Moldovan,
117Ben Pritchard,
118Jason Rhinelander,
119Boris Schäling,
120Pim Schellart,
121Henry Schreiner,
122Ivan Smirnov, and
123Patrick Stewart.
124
125### License
126
127pybind11 is provided under a BSD-style license that can be found in the
128``LICENSE`` file. By using, distributing, or contributing to this project,
129you agree to the terms and conditions of this license.
122Ivan Smirnov, and
123Patrick Stewart.
124
125### License
126
127pybind11 is provided under a BSD-style license that can be found in the
128``LICENSE`` file. By using, distributing, or contributing to this project,
129you agree to the terms and conditions of this license.