# Supported Product Versions

> Learn which ReversingLabs product versions are supported and where to find documentation for them.

export const sortDesc = (a, b) => {
  const pa = String(a).split('.').map(Number);
  const pb = String(b).split('.').map(Number);
  for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
    const ai = pa[i] ?? 0;
    const bi = pb[i] ?? 0;
    if (ai !== bi) return bi - ai;
  }
  return 0;
};

export const SupportedProductVersions = ({ products, limit }) => (
  
    {products.map(({ name, versions, basePath }) => {
      const sorted = [...versions].sort(sortDesc);
      const list = typeof limit === 'number' ? sorted.slice(0, limit) : sorted;
      return (
        <section key={name} style={{ marginBottom: '1rem' }}>
          {name}
          
            {list.map((v) => (
              
                {v}
              
            ))}
          
        </section>
      );
    })}
  
);

ReversingLabs provides support for the latest product version and the two major versions before it.

Delivery and upgrade processes vary by platform, but we recommend using the most recent release to ensure optimal performance and access to all features.

<SupportedProductVersions
  products={[
    { name: 'Spectra Analyze', basePath: 'SpectraAnalyze', versions: SpectraAnalyzeVersions },
    { name: 'Spectra Detect', basePath: 'SpectraDetect', versions: SpectraDetectVersions },
    { name: 'File Inspection Engine', basePath: 'FileInspectionEngine', versions: FileInspectionEngineVersions },
    { name: 'T1000', basePath: 'T1000', versions: T1000Versions },
  ]}
/>
