{"id":20735131,"url":"https://github.com/djsutherland/cyflann","last_synced_at":"2025-12-12T00:43:31.610Z","repository":{"id":9127727,"uuid":"10915317","full_name":"djsutherland/cyflann","owner":"djsutherland","description":"A Cython interface to FLANN","archived":false,"fork":false,"pushed_at":"2020-11-25T23:10:24.000Z","size":119,"stargazers_count":24,"open_issues_count":9,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-21T15:39:57.053Z","etag":null,"topics":["cython","flann","nearest-neighbors","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djsutherland.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-24T17:43:01.000Z","updated_at":"2025-03-01T06:13:26.000Z","dependencies_parsed_at":"2022-07-07T19:18:40.768Z","dependency_job_id":null,"html_url":"https://github.com/djsutherland/cyflann","commit_stats":null,"previous_names":["dougalsutherland/cyflann"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/djsutherland/cyflann","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djsutherland%2Fcyflann","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djsutherland%2Fcyflann/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djsutherland%2Fcyflann/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djsutherland%2Fcyflann/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djsutherland","download_url":"https://codeload.github.com/djsutherland/cyflann/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djsutherland%2Fcyflann/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267865992,"owners_count":24157344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cython","flann","nearest-neighbors","python"],"created_at":"2024-11-17T05:34:31.311Z","updated_at":"2025-12-12T00:43:31.578Z","avatar_url":"https://github.com/djsutherland.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"cyflann\n=======\n\n|Travis|_ |AppVeyor|_ |PyPI|_ |conda|_\n\n.. |Travis| image:: https://api.travis-ci.org/dougalsutherland/cyflann.svg?branch=master\n.. _Travis: https://travis-ci.org/dougalsutherland/cyflann\n\n.. |AppVeyor| image:: https://ci.appveyor.com/api/projects/status/github/dougalsutherland/cyflann?branch=master\u0026svg=true\n.. _AppVeyor: https://ci.appveyor.com/project/dougalsutherland/cyflann\n\n.. |PyPI| image:: https://badge.fury.io/py/cyflann.svg\n.. _PyPI: https://badge.fury.io/py/cyflann/\n\n.. |conda| image:: https://anaconda.org/conda-forge/cyflann/badges/version.svg\n.. _conda: https://anaconda.org/conda-forge/cyflann\n\n`cyflann` is a Cython-based interface to the\n`FLANN \u003chttp://people.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN\u003e`_ library.\nIt allows you to call FLANN from Cython without python overheads; in particular, you can make many calls in parallel threads without the GIL.\n\nIf you're just looking for any Python interface to FLANN, the ctypes interface\nthat it ships with may be better for you. I wrote this interface for\n`an application \u003chttps://github.com/dougalsutherland/py-sdm/\u003e`_\nthat needs to run lots of independent searches without the GIL.\n\nThe interface is currently incomplete; right now only float32 is supported, it\nalso has some known issues, and is probably less friendly in general than it\ncould be. If you want to use it, bug reports and/or pull requests are welcome.\n\ncyflann is only tested with FLANNs since 1.8.4.\ncyflann supports FLANN's OpenMP wrappers, but has not been tested with its\nMPI or CUDA interfaces.\n\n\nInstallation\n------------\n\nIf you use the `Anaconda \u003chttps://store.continuum.io/cshop/anaconda/\u003e`_ Python\ndistribution, the easiest way to get both cyflann and FLANN, including on Windows, is::\n\n   conda install -c conda-forge cyflann\n\nOtherwise, you need to install FLANN yourself (see below), and can then run::\n\n   pip install cyflann\n\n**NOTE:** If you're using FLANN 1.8.4 or earlier, a problem\nwith its pkg-config files means that cyflann won't link properly.\nThis has been fixed in the development branch since April 2013, but the\n1.9.1 release isn't yet widely packaged.\n\nTo work around this problem, set the environment variable ``FLANN_DIR`` to the\nroot of the installation before running ``pip`` or ``setup.py``, e.g.\n``/usr/local`` if the libraries are in ``/usr/local/lib/libflann.so``.\nIf you're using ``sudo``, remember that it doesn't necessarily propagate \nenvironment variables by default;\n``sudo FLANN_DIR=/wherever pip install cyflann`` will work.\n\n\nInstalling FLANN\n----------------\n\n**Anaconda:** ``conda install -c conda-forge flann`` (included as a requirement by the cyflann package).\n\n**OSX:** using `Homebrew \u003chttp://brew.sh\u003e`_, ``brew install flann``; this gives you 1.9.1, but if ``pkg-config`` doesn't work for you for some reason, it's ``FLANN_DIR=$(brew --prefix)``.\n\n**Ubuntu:** ``apt-get install libflann1 flann-dev``; set ``FLANN_DIR=/usr``.\n\n**Fedora:** ``yum install flann flann-devel``; set ``FLANN_DIR=/usr``.\n\n**CentOS:** \n`EPEL \u003chttps://fedoraproject.org/wiki/EPEL\u003e`_ has flann packages,\nbut they're old and not tested with cyflann. Compile from source.\n\n**Arch:**\nInstall the `AUR flann package \u003chttps://aur.archlinux.org/packages/flann/\u003e`_;\ncyflann wants ``FLANN_DIR=/usr``.\n\n**From source:**\nDownload `the release source \u003chttps://github.com/mariusmuja/flann/releases\u003e`_,\nand follow the `user manual \u003chttp://www.cs.ubc.ca/research/flann/uploads/FLANN/flann_manual-1.8.4.pdf\u003e`_ to install.\nIf you're installing 1.9.1 and have ``pkg-config`` available,\nyou shouldn't need to set ``FLANN_DIR``,\nbut if not set it to whatever you set ``CMAKE_INSTALL_PREFIX`` to\n(``/usr/local`` by default).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjsutherland%2Fcyflann","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjsutherland%2Fcyflann","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjsutherland%2Fcyflann/lists"}