Releases: Enet4/faiss-rs
Releases · Enet4/faiss-rs
v0.12.1
New
- Static linking of Faiss is now supported as a Cargo feature (#67 @SkyFan2002)
- Add GPU support to static linking (#70)
- add module
utils
(#65 @ava57r)
Enhancements
Miscellaneous
New Contributors
- Thank you @SkyFan2002 for taking the initiative on supporting static linking (#67)
Full Changelog: v0.12.0...v0.12.1
v0.12.0
Changes
- Improved type safety of encapsulating index types such as
RefineFlatIndex
, by restrictingFromInnerPtr
implementations (#60 @ava57r) - Removed
TryClone
's dependency onFromInnerPtr
(#60 @ava57r)
New
- Native utils API was added to
faiss-sys
(#54 @ava57r) - Added
PreTransformIndex::prepend_transform
(#59 @ava57r) IndexImpl
can now be dynamically cast to anIdMapIndex
viainto_id_map
(#61 @ava57r)- Added more methods to
Clustering
(#58 @ava57r)
Fixes and enhancements
- Use
c_char
instead ofi8
when converting a train type code (#56 @OlivierDehaene)
New Contributors
- @OlivierDehaene made their first contribution in #56
Full Changelog: v0.11.0...v0.12.0
v0.11.0
Changes
faiss-sys
has been updated to link against Faiss version 1.7.2.
Please do not forget to update your faiss and faiss_c libraries by building them against the revision pointed by tagv1.7.2
. Linking against v1.7.1 may appear to work in some cases, but the API is not backwards compatible! (#52)TryFromInnerPtr::try_from_inner_ptr
is nowunsafe
, since it cannot provide the checks required to ensure memory safety. (#53)
New
io
methodread_index_with_flags
allows for memory mapping to some index types (#50 @mooreniemi)TryClone
trait, for cloning an index (#44 @ava57r)UpcastIndex
trait (#43 @ava57r)
Fixes and Enhancements
- Fixed ownership mistakes in
IVFFlatIndexImpl
(#42 @ava57r) - Implemented
to_gpu
for some of the new index types (#39 @ava57r) - Added
Box
impl for index types (#41 @ava57r) - Used
impl_concurrent_index
macro for implementing the trait with reduced boilerplate (#34 @ava57r) - Fixed README (#32 @ava57r)
Full Changelog: v0.10.0...v0.11.0
v0.10.0
Changes
- The bindings now depend exclusively on version 1.17.1 of the native Faiss library (#16 #28)
- See the branch Enet4/c_api_v1.7.1 for a compatible pinned revision
- look out for the native shared objects, as
libfaiss_c.so
might no longer statically embed the native faiss objects, and so will need to be copied alongside it.
New
- New
TryFromInnerPtr
trait, for obtaining an index from a pointer in a way which can fail (#30 @ava57r) - Support for multiple GPUs (#12)
- via
to_gpu_multiple
methods
- via
RefineFlatIndex
(#25 @ava57r)PreTransformIndex
(#24 @ava57r)- Added getters and setters for
verbose
property (#23 @ava57r) ScalarQuantizerIndex
(#21 #30 @ava57r)IVFFlatIndex
(#17 @ava57r)- Access to index parameters via
ParameterSpace
(#14 @ava57r)
Chores
- Migrated and updated CI using GitHub Actions (#29)
v0.9.0
Breaking changes
- The crate now depends on Faiss v1.6.3 with the C API patches (branch
c_api_v1.6.3
). Please update your dynamic libraries before using. (#8 @gensmusic ) - Updated the clustering API in line with the changes in the native library: see the method
iteration_stats
for retrieving the stats of the clustering process (#8 @gensmusic) - Implementations of
Error::description
were removed. - Removed
NativeError::from_last_error
from the public API.
v0.8.0
This is a maintenance release, for improved stability.
Breaking changes
- Low-level bindings have been updated for Faiss 1.5. Please update your native
faiss_c
objects. - New abstraction for vector identifiers
Idx
, a newtype which makes a distinction between an identifier and no identifier (= -1
). set_temp_memory_fraction
has been removed fromGpuResources
, since it is also no longer available in the native API.MetricType::code
takesself
by move.- Methods
as_flat
andas_lsh
have been renamed tointo_flat
andinto_lsh
, old names are deprecated.
Other
- The crate
faiss
has been migrated to the 2018 edition.
v0.7.0
New
- Added method
remove_ids
toIndex
(@justinaustin) - Updated
faiss-sys
bindings to include native multi-gpu functions.
Other
- A few documentation improvements.
v0.6.0
New
- New wrapper
IdMap
augments an existing index with arbitrary ID mapping. - A CPU-backed index can now be cloned with
try_clone
(if index cloning is supported).
Breaking changes
- Internal macros are no longer exported. Hopefully no one was using them in the first place.
Minor
IndexLsh
is now re-exported at the root.- Documentation was significantly improved!
LSH Index + Index I/O module
New
- Index type
LshIndex
for locality sensitive hashing indexing. index::io
module for reading and writing indices from/to disk.
Breaking changes
- New error variant
BadFilePath
for incompatible file path strings inio
module. - Relies on an updated C API of
faiss_c
, so you may need to rebuild Faiss with the latest version.
Minor tweaks
- implement
Debug
forStandardGpuResources
v0.4.0
New
to_gpu
andto_cpu
methods were brought back, but without consuming the original index. Unlike ininto_gpu
, both indexes can be used separately and are independent from each other.- Added slicker
FlatIndex::new_l2
andFlatIndex::new_ip
constructors. FlatIndex
is now reachable at the crate's root.
Breaking Change
GpuIndexImpl::from_cpu
is no longer in the public API (its use was already ill advised).- Invalid description input to
index_factory
will return a new error variant instead of panicking.
Fixes
- Documentation on indexes and GPU support was significantly improved.