Skip to content
Chemical Drawing Atlas

This website is biased toward ReShiki, because its maintainer also maintains ReShiki. Please be careful.

All features

MOL and SDF

MOL files can be read and written; note if SDF is missing.

103 tools have this, 28 of them shown here. 16 do not. 9 not established.

What powers it: In-house (8), In-house (JavaScript; MOL read/write) (2), Ported from RDKit (Rust MOL reader/writer; no SDF) (1), In-house browser JavaScript MOL parser/writer and SDF record reader (1), RDKit FileParsers and FileWriters (C++); In-house (C++) SDF framing (1), Indigo (WebAssembly); In-house (TypeScript V3000 query/Markush reader and writer, SDF record handling) (1), In-house (TypeScript V2000/V3000 MOL parser/writer and SDF exporter) (1), Ketcher (TypeScript/JavaScript MOL V2000 parser/writer); Indigo (WebAssembly, V3000/SDF conversion) (1), In-house MOL V2000/V3000 reader and V3000 writer with SDF record handling (JavaScript modules in browser) (1), In-house JavaScript V2000 MOL/SDF reader/writer and V3000 writer; bundled OpenChemLib 9.25.1 JavaScript for V3000 import and enhanced-stereo export (1), Ketcher 3.17.2 (TypeScript MolSerializer for ordinary MOL V2000); Indigo 1.45.1 (WebAssembly for query MOL, V3000 and SDF); OpenChemLib JS 9.25.0 (MOL parsing helpers) (1), In-house (TypeScript MOL V2000/V3000 and SDF readers/writers) (1), Ketcher (TypeScript/JavaScript MOL V2000 serializer) and Indigo (WebAssembly MOL V3000/SDF conversion) (1), In-house (chematic-mol, Rust/WebAssembly MOL V2000/V3000 and SDF; first SDF record imported) (1), Kekule.js (JavaScript MOL reader/writer); In-house (JavaScript SDF export) (1), Ketcher TypeScript MolSerializer for ordinary MOL V2000; Indigo WebAssembly for SDF, V3000 and query MOL (1), RDKit (Python bindings, local server) (1), In-house (JavaScript MOL V2000 parser/writer; first SDF record only) (1), OpenChemLib (browser JavaScript MOL import/export, Molecule.fromMolfile/toMolfile/toMolfileV3) (1), OpenChemLib (JavaScript npm package) for MOL; In-house (TypeScript) SDF framing (1), Ketcher TypeScript MOL V2000 serializer and Indigo WebAssembly conversion; In-house TypeScript MOL/SDF import parser; RDKit native Python bindings for backend MOL conversion (1), Ketcher (TypeScript); Indigo (WebAssembly); RDKit.js (WebAssembly) (1), OpenChemLib JS (JavaScript MOL parser/writer); In-house (JavaScript SDF record handling) (1), Ketcher MolSerializer (TypeScript, MOL V2000); Indigo 1.46.0 (WebAssembly, MOL V3000/SDF) (1), In-house (JavaScript MOL V2000 parser/writer; no SDF) (1), RDKit (Python MOL reader/writer; no SDF workflow) (1), In-house ChemDoodle.io.MOLInterpreter (browser JavaScript; MOL V2000/V3000); ChemDoodle Java API (remote iChemLabs CloudServices for SDF) (1), Ketcher (TypeScript MOL V2000 parser/writer); Indigo (WebAssembly for SDF, MOL V3000 and query MOL) (1), RDKit (Python; MOL read/write and SDF import only) (1), In-house (Python V2000 MOL reader/writer; SDF reader) (1), In-house TypeScript MolSerializer for ordinary MOL V2000; Indigo WebAssembly or HTTP service for SDF, V3000 and query MOL (1), Ketcher 3.18.0 (TypeScript MOL V2000); Indigo 1.46.0 (WebAssembly MOL V3000/SDF) (1), OpenChemLib (JavaScript) (1), In-house (Python V2000 MOL reader/writer and SDF record handling) (1), In-house (TypeScript V2000 MOL writer; user export only, no SDF workflow) (1), Ketcher (TypeScript); Indigo (WebAssembly) (1), In-house (Python MOL V2000 reader and writer; no SDF) (1), RDKit SDMolSupplier and SDWriter (C++; WebAssembly in browser build) (1), Open Babel MDL MOL/SDF format plugin (native C++ through optional obabeliface shared library; one record) (1), RDKit.js (WebAssembly); In-house (MOL/SDF parsing and SDF writing) (1), In-house SDFparser/SDFgenerator (Java; MOL/SDF input, SDF output) (1), CDK MDLV2000Reader and MDLV2000Writer (Java; general SDF import only) (1), In-house (Molsoft libchem WebAssembly import, Chemical.toMol JavaScript export; MOL confirmed) (1), RDKit.js (WebAssembly); In-house SDF record framing (1), In-house (Rust V2000 molblock/SDF reader and writer) (1), Ported from OpenChemLib MolfileParser, MolfileCreator, MolfileV3Creator and SDFileParser (Java compiled to JavaScript with GWT; MOL read/write and SDF reading) (1), In-house (Elemental JavaScript MOL/SDF parser and writer) (1), WebMolKit (TypeScript MDLMOLReader / MDLMOLWriter; MOL only) (1), In-house (JavaScript; MDL V2000/V3000 and SDF readers/writers) (1), Ported from JME (GWT-compiled JavaScript, MOL/SDF import and MOL export); OpenChemLib (GWT-compiled JavaScript, V3000 import) (1), In-house (Rust V2000Codec with V2000/V3000 MOL and SDF handling) (1), Ketcher (JavaScript MOL); In-house (Ruby SDF import) (1), In-house (MOL V2000; first SDF record only) (1), In-house (WebMolKit MDLMOLReader/Writer and MDLSDFReader/Writer; TypeScript compiled to JavaScript) (1), RDKit (Python; MOL only) (1), In-house (MOL V2000 parser/writer; SDF unconfirmed) (1), Kekule.js (JavaScript MDL MOL/SDF readers and writers) (1), OASA (bundled Python MOL reader and writer) (1), In-house (ChemDoodle Java file-format interpreters, local) (1), In-house (JavaScript MOL parser/writer and first-record SDF import); Indigo (WebAssembly optional MOL V3000 conversion) (1), In-house Chemaxon I/O MDL module (local Java MolImporter/MolExporter) (1), RDKit FileParsers (C++ compiled to browser WebAssembly; confirmed MOL import) (1), Ported from Ketcher (bundled JavaScript MolfileParser and MolfileSaver for MOL/SDF) (1), In-house Marvin JS (GWT-compiled browser JavaScript; native MOL V2000); Chemaxon MolConvert (remote Java web service for SDF and MOL V3000) (1), OASA (Python MOL reader/writer; SDF unconfirmed) (1), Ketcher MolSerializer (TypeScript, MOL V2000); Indigo (native C++ via Rust FFI, other MOL conversion; no SDF output) (1), Open Babel (C++ library in local babelserver helper; MOL read/write, SDF unconfirmed) (1), RDKit (C++) (1), In-house Marvin Web Services MolConvert (remote Java service) (1), In-house Chem4Word.Model2 SdFileConverter/CtabProcessor (C#; V2000) (1), CDKSwiftNativePort (native Swift MDL V2000/V3000 and SDF readers/writers) (1), In-house (C MOL reader/writer and SDF reader) (1), In-house (JSDraw2.Mol and JSDraw2.Table, JavaScript) (1), RDKit (native C++ MolBlockToMol/MolToMolBlock, MOL import/export; no SDF writer) (1), In-house (C++ libjcp_engine.so; V2000 MOL and SDF import) (1), idris2-chem (Idris chem package, Text.Molfile reader and writer) (1), Ketcher (TypeScript MOL V2000 serializer); Indigo (browser WebAssembly MOL V3000 conversion); SDF implementation unconfirmed (1), RDKit (Python MOL parsing, SDMolSupplier and MolToMolBlock); In-house (Python SDF record/tag framing and molblock-header normalization) (1)

  • Tested by running it
  • Seen in the app
  • The manual says yes
  • Partly, with the reason shown
  • Not supported
  • Not established, which is not the same as no

Select a mark for its proof. A filled mark opens our screenshot, or the manual if the check left nothing to picture. A ring opens the manual.

Structure export panel has MOL selected.

Partly: MOL import/export worked; opening SDF reported Invalid SMILES at byte 1. ReShiki

0.14.0

Uses Ported from RDKit (Rust MOL reader/writer; no SDF)

Partly: MOL import/export worked; opening SDF reported Invalid SMILES at byte 1.

Structure export panel has MOL selected.

Download menu lists the MOL chemistry format.

Partly: MOL and SDF opened; MOL download requires account. MolDraw

4.0

Uses In-house browser JavaScript MOL parser/writer and SDF record reader

Partly: MOL and SDF opened; MOL download requires account.

Download menu lists the MOL chemistry format.

Export dialog with MOL selected as the format.

Yes, tested by running it: Imported MOL and SDF; exported both formats. Octet Draw

1.1.0

Uses Indigo (WebAssembly); In-house (TypeScript V3000 query/Markush reader and writer, SDF record handling)

Export dialog with MOL selected as the format.

Export menu lists MOL and SDF download formats.

Yes, tested by running it: MOL and SDF imports, MOL export worked; SDF flattened. SketchIQ

dpl_44ysNf1Cbx9iepy8z4SrXP7…

Uses Ketcher (TypeScript/JavaScript MOL V2000 parser/writer); Indigo (WebAssembly, V3000/SDF conversion)

Export menu lists MOL and SDF download formats.

A molecular model with SDF shown as its format.

Yes, tested by running it: MOL read/write and cholesterol SDF import succeeded. ChemThisTry

0.1.6

Uses Ketcher (TypeScript/JavaScript MOL V2000 serializer) and Indigo (WebAssembly MOL V3000/SDF conversion)

A molecular model with SDF shown as its format.

The downloads list includes a completed MOL file.

Partly: MOL export worked; Open dialog disabled fixture MOL and SDF. Chematic Draw

chematic 1.0.38 (build inde…

Uses In-house (chematic-mol, Rust/WebAssembly MOL V2000/V3000 and SDF; first SDF record imported)

Partly: MOL export worked; Open dialog disabled fixture MOL and SDF.

The downloads list includes a completed MOL file.

Save Structure dialog showing an MDL Molfile preview.

Yes, tested by running it: Imported and exported MOL; SDF save option visible. FreeChemDraw

3.18.0

Uses Ketcher TypeScript MolSerializer for ordinary MOL V2000; Indigo WebAssembly for SDF, V3000 and query MOL

Save Structure dialog showing an MDL Molfile preview.

Save Structure format menu listing MDL Molfile and SDF.

Yes, tested by running it: Opened MOL and SDF; exported MOL. Kendraw

0.1.0

Uses Ketcher TypeScript MOL V2000 serializer and Indigo WebAssembly conversion; In-house TypeScript MOL/SDF import parser; RDKit native Python bindings for backend MOL conversion

Save Structure format menu listing MDL Molfile and SDF.

Save Structure menu listing MOL and SDF formats.

Yes, tested by running it: Opened MOL and SDF; exported MOL. BoltzDraw

Ketcher 2.24.0

Uses Ketcher (TypeScript); Indigo (WebAssembly); RDKit.js (WebAssembly)

Save Structure menu listing MOL and SDF formats.

A MOL file imported into the drawing canvas.

Yes, tested by running it: MOL round-trip succeeded; cholesterol SDF loaded in 3D. MoleditPy

5.1.3

Uses RDKit (Python; MOL read/write and SDF import only)

A MOL file imported into the drawing canvas.

An SDF file displayed as a flat molecular drawing.

Yes, tested by running it: MOL exported/reopened; cholesterol SDF imported as a flat drawing. ChemCanvas

0.14.8

Uses In-house (Python V2000 MOL reader/writer; SDF reader)

An SDF file displayed as a flat molecular drawing.

Export menu lists 2D and 3D SDF/MOL files.

Partly: MOL/SDF import and export both require subscription. MolView.com

2026-11-02 (5ecc001a)

Uses In-house

Partly: MOL/SDF import and export both require subscription.

Export menu lists 2D and 3D SDF/MOL files.

Save Structure format menu listing MDL Molfile and SDF.

Yes, tested by running it: Opened MOL and SDF; exported MOL. Ketcher

3.18.0

Uses In-house TypeScript MolSerializer for ordinary MOL V2000; Indigo WebAssembly or HTTP service for SDF, V3000 and query MOL

Save Structure format menu listing MDL Molfile and SDF.

MOL export button beside an ethylbenzene drawing.

Partly: MOL exports, but RDKit rejects coordinates; no import or SDF control. Molecule Builder (OvOHongYu)

0.1.0

Uses In-house (TypeScript V2000 MOL writer; user export only, no SDF workflow)

Partly: MOL exports, but RDKit rejects coordinates; no import or SDF control.

MOL export button beside an ethylbenzene drawing.

Save Structure dialog with MDL Molfile V2000 selected.

Yes, tested by running it: Imported MOL and SDF; exported MOL. KetchDraw

2.24.0

Uses Ketcher (TypeScript); Indigo (WebAssembly)

Save Structure dialog with MDL Molfile V2000 selected.

A caffeine structure displayed in the simple.mol document.

Partly: MOL import/export worked; SDF opening rejected by extension warning. Chemvas

0.28.0

Uses In-house (Python MOL V2000 reader and writer; no SDF)

Partly: MOL import/export worked; SDF opening rejected by extension warning.

A caffeine structure displayed in the simple.mol document.

Format menu lists MDL SD V3000.

Yes, tested by running it: Imported V2000 MOL and 3D SDF; exported V3000 MOL. Schrödinger Sketcher

Release 2026-4 (build 131)

Uses RDKit SDMolSupplier and SDWriter (C++; WebAssembly in browser build)

Format menu lists MDL SD V3000.

MOL text displayed in the editor export dialog.

Yes, tested by running it: MOL text import and export worked; SDF untested. Molsoft HTML5 Molecule Editor

v1.6.0

Uses In-house (Molsoft libchem WebAssembly import, Chemical.toMol JavaScript export; MOL confirmed)

MOL text displayed in the editor export dialog.

A caffeine structure alongside molfile output.

Partly: Pasted MOL text and copied MOL output; SDF untested. OpenChemLib JS editor

v9.25.2

Uses Ported from OpenChemLib MolfileParser, MolfileCreator, MolfileV3Creator and SDFileParser (Java compiled to JavaScript with GWT; MOL read/write and SDF reading)

Partly: Pasted MOL text and copied MOL output; SDF untested.

A caffeine structure alongside molfile output.

A molecule displayed in a window titled simple-out.mol.

Partly: MOL read/write works; SDF opens; no SDF save format. SketchEl 2

0.1.0

Uses WebMolKit (TypeScript MDLMOLReader / MDLMOLWriter; MOL only)

Partly: MOL read/write works; SDF opens; no SDF save format.

A molecule displayed in a window titled simple-out.mol.

MOL format and data preview beside a caffeine structure.

Yes, tested by running it: Imported and saved MOL and SDF. Kekule.js

0.9.9.22022400

Uses In-house (JavaScript; MDL V2000/V3000 and SDF readers/writers)

MOL format and data preview beside a caffeine structure.

Export as MDL MOL dialog with MOL file format selected.

Partly: MOL/SDF loaded; MOL export dialog opened, but filename entry failed. SketchEl

1.62

Uses In-house

Partly: MOL/SDF loaded; MOL export dialog opened, but filename entry failed.

Export as MDL MOL dialog with MOL file format selected.

Test page with MOL import and MOL and SDF export controls.

Yes, tested by running it: MOL import/export and single-record SDF import worked. JSME Molecule Editor

v2024-04-29

Uses Ported from JME (GWT-compiled JavaScript, MOL/SDF import and MOL export); OpenChemLib (GWT-compiled JavaScript, V3000 import)

Test page with MOL import and MOL and SDF export controls.

MOL and SDF controls show a rejected 3D SDF import.

Yes, tested by running it: 2D MOL import/export and SDF export work; cholesterol SDF refused. Chemifree

0.1.0

Uses In-house (Rust V2000Codec with V2000/V3000 MOL and SDF handling)

MOL and SDF controls show a rejected 3D SDF import.

Save File dialog shows MDL/Symyx Molfile text.

Yes, tested by running it: MOL read and written; single SDF opened flat. Ketcherails (ketcher-rails)

0.1.12

Uses Ketcher (JavaScript MOL); In-house (Ruby SDF import)

Save File dialog shows MDL/Symyx Molfile text.

Caffeine structure opened from a MOL file.

Yes, tested by running it: MOL read/write; supplied single-record SDF opened. No SDF export option. rdEditor

0.5.1

Uses RDKit (Python; MOL only)

Caffeine structure opened from a MOL file.

A structure displayed from simple.mol.

Partly: MOL and first SDF structure import worked; writing remained unverified. JMolDraw

V0.5

Uses In-house

Partly: MOL and first SDF structure import worked; writing remained unverified.

A structure displayed from simple.mol.

SDF file contents and its structure in the editor.

Partly: MOL and SDF import; MOL save returned blank response. MolTouch

v1.0.0

Uses In-house (MOL V2000 parser/writer; SDF unconfirmed)

Partly: MOL and SDF import; MOL save returned blank response.

SDF file contents and its structure in the editor.

Available, no screenshot

ChemDraw's license keeps us from publishing pictures of its interface.

Not available

Not established (9)

Lhendraw, FX ChemStruct / FX Draw Chemical Structures, EasyChem, Elk_Draw RDKit, MolPrime+, Chem Sketcher (Non_REM.Persona Laboratory), Structo, moled, Molecule

Open the full pageManual