• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

smmap/H13-Oct-2018-1,6261,069

smmap2.egg-info/H03-May-2022-11268

LICENSEH A D26-Dec-20151.5 KiB3124

MANIFEST.inH A D10-Jun-201743 32

PKG-INFOH A D13-Oct-20185.4 KiB11268

README.mdH A D13-Oct-20183.7 KiB8643

setup.cfgH A D13-Oct-2018113 117

setup.pyH A D13-Oct-20182 KiB5946

README.md

1## Motivation
2
3When reading from many possibly large files in a fashion similar to random access, it is usually the fastest and most efficient to use memory maps.
4
5Although memory maps have many advantages, they represent a very limited system resource as every map uses one file descriptor, whose amount is limited per process. On 32 bit systems, the amount of memory you can have mapped at a time is naturally limited to theoretical 4GB of memory, which may not be enough for some applications.
6
7
8## Limitations
9
10* **System resources (file-handles) are likely to be leaked!** This is due to the library authors reliance on a deterministic `__del__()` destructor.
11* The memory access is read-only by design.
12
13
14## Overview
15
16[![Build Status](https://travis-ci.org/gitpython-developers/smmap.svg?branch=master)](https://travis-ci.org/gitpython-developers/smmap)
17[![Build status](https://ci.appveyor.com/api/projects/status/kuws846av5lvmugo?svg=true&passingText=windows%20OK&failingText=windows%20failed)](https://ci.appveyor.com/project/Byron/smmap)
18[![Coverage Status](https://coveralls.io/repos/gitpython-developers/smmap/badge.png)](https://coveralls.io/r/gitpython-developers/smmap)
19[![Issue Stats](http://www.issuestats.com/github/gitpython-developers/smmap/badge/pr)](http://www.issuestats.com/github/gitpython-developers/smmap)
20[![Issue Stats](http://www.issuestats.com/github/gitpython-developers/smmap/badge/issue)](http://www.issuestats.com/github/gitpython-developers/smmap)
21
22Smmap wraps an interface around mmap and tracks the mapped files as well as the amount of clients who use it. If the system runs out of resources, or if a memory limit is reached, it will automatically unload unused maps to allow continued operation.
23
24To allow processing large files even on 32 bit systems, it allows only portions of the file to be mapped. Once the user reads beyond the mapped region, smmap will automatically map the next required region, unloading unused regions using a LRU algorithm.
25
26The interface also works around the missing offset parameter in python implementations up to python 2.5.
27
28Although the library can be used most efficiently with its native interface, a Buffer implementation is provided to hide these details behind a simple string-like interface.
29
30For performance critical 64 bit applications, a simplified version of memory mapping is provided which always maps the whole file, but still provides the benefit of unloading unused mappings on demand.
31
32
33
34## Prerequisites
35
36* Python 2.7 or 3.4+
37* OSX, Windows or Linux
38
39The package was tested on all of the previously mentioned configurations.
40
41## Installing smmap
42
43[![Documentation Status](https://readthedocs.org/projects/smmap/badge/?version=latest)](https://readthedocs.org/projects/smmap/?badge=latest)
44
45Its easiest to install smmap using the [pip](http://www.pip-installer.org/en/latest) program:
46
47```bash
48$ pip install smmap
49```
50
51As the command will install smmap in your respective python distribution, you will most likely need root permissions to authorize the required changes.
52
53If you have downloaded the source archive, the package can be installed by running the `setup.py` script:
54
55```bash
56$ python setup.py install
57```
58
59It is advised to have a look at the **Usage Guide** for a brief introduction on the different database implementations.
60
61
62
63## Homepage and Links
64
65The project is home on github at https://github.com/gitpython-developers/smmap .
66
67The latest source can be cloned from github as well:
68
69* git://github.com/gitpython-developers/smmap.git
70
71
72For support, please use the git-python mailing list:
73
74* http://groups.google.com/group/git-python
75
76
77Issues can be filed on github:
78
79* https://github.com/gitpython-developers/smmap/issues
80
81
82## License Information
83
84*smmap* is licensed under the New BSD License.
85
86