[package]
edition = "2024"
rust-version = "1.92"
name = "sdocx"
version = "1.1.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Reverse-engineered tooling and SDK for converting Samsung Notes (.sdocx) files"
readme = "README.md"
license = "GPL-3.0"
repository = "https://github.com/twangodev/sdocx"
resolver = "2"
[features]
pdf = [
"render",
"dep:krilla",
"dep:usvg",
"dep:png",
"dep:resvg",
"dep:tiny-skia",
]
render = [
"dep:base64",
"dep:svg",
"dep:fontdb",
"dep:rustybuzz",
"dep:write-fonts",
"dep:cssparser",
"dep:unicode-bidi",
"dep:unicode-script",
"dep:unicode-linebreak",
"dep:unicode-segmentation",
"dep:skrifa",
"dep:read-fonts",
"dep:bytemuck",
"dep:bitflags",
"dep:once_cell",
"dep:smallvec",
]
serde = ["dep:serde"]
[lib]
name = "sdocx"
path = "src/lib.rs"
[[example]]
name = "ink_geometry"
path = "examples/ink_geometry.rs"
required-features = [
"render",
"serde",
]
[[test]]
name = "archive_contracts"
path = "tests/archive_contracts.rs"
[[test]]
name = "archive_resource_contracts"
path = "tests/archive_resource_contracts.rs"
[[test]]
name = "archive_resources"
path = "tests/archive_resources.rs"
[[test]]
name = "body_preparation_review"
path = "tests/body_preparation_review.rs"
[[test]]
name = "body_text_capture"
path = "tests/body_text_capture.rs"
[[test]]
name = "body_text_capture_render"
path = "tests/body_text_capture_render.rs"
[[test]]
name = "body_text_reflow"
path = "tests/body_text_reflow.rs"
[[test]]
name = "code_drawing_origin"
path = "tests/code_drawing_origin.rs"
[[test]]
name = "code_width_feedback"
path = "tests/code_width_feedback.rs"
[[test]]
name = "composition"
path = "tests/composition.rs"
[[test]]
name = "composition_exports"
path = "tests/composition_exports.rs"
[[test]]
name = "conformance"
path = "tests/conformance.rs"
[[test]]
name = "embedded_object_diagnostics"
path = "tests/embedded_object_diagnostics.rs"
[[test]]
name = "embedded_text_layout"
path = "tests/embedded_text_layout.rs"
[[test]]
name = "empty_marker_caret"
path = "tests/empty_marker_caret.rs"
[[test]]
name = "empty_table_cursor"
path = "tests/empty_table_cursor.rs"
[[test]]
name = "end_tag_contracts"
path = "tests/end_tag_contracts.rs"
[[test]]
name = "flow_marker_layout"
path = "tests/flow_marker_layout.rs"
[[test]]
name = "font_collection_svg"
path = "tests/font_collection_svg.rs"
[[test]]
name = "font_collection_validation"
path = "tests/font_collection_validation.rs"
[[test]]
name = "font_metrics"
path = "tests/font_metrics.rs"
[[test]]
name = "formula_metadata"
path = "tests/formula_metadata.rs"
[[test]]
name = "integrity"
path = "tests/integrity.rs"
[[test]]
name = "layer_metadata"
path = "tests/layer_metadata.rs"
[[test]]
name = "layout_review_regressions"
path = "tests/layout_review_regressions.rs"
[[test]]
name = "math_metadata"
path = "tests/math_metadata.rs"
[[test]]
name = "media_manifest"
path = "tests/media_manifest.rs"
[[test]]
name = "mixed_text_objects"
path = "tests/mixed_text_objects.rs"
[[test]]
name = "note_header"
path = "tests/note_header.rs"
[[test]]
name = "note_metadata"
path = "tests/note_metadata.rs"
[[test]]
name = "numbered_list_markers"
path = "tests/numbered_list_markers.rs"
[[test]]
name = "object_flexible_metadata"
path = "tests/object_flexible_metadata.rs"
[[test]]
name = "object_font_metrics"
path = "tests/object_font_metrics.rs"
[[test]]
name = "object_metadata"
path = "tests/object_metadata.rs"
[[test]]
name = "object_width_feedback"
path = "tests/object_width_feedback.rs"
[[test]]
name = "page_edge_text_margins"
path = "tests/page_edge_text_margins.rs"
[[test]]
name = "page_templates"
path = "tests/page_templates.rs"
[[test]]
name = "paragraph_indent_layout"
path = "tests/paragraph_indent_layout.rs"
[[test]]
name = "paragraph_justification"
path = "tests/paragraph_justification.rs"
[[test]]
name = "paragraph_spacing_layout"
path = "tests/paragraph_spacing_layout.rs"
[[test]]
name = "parsed_cell_defaults"
path = "tests/parsed_cell_defaults.rs"
[[test]]
name = "pdf_export"
path = "tests/pdf_export.rs"
[[test]]
name = "pdf_paper_source"
path = "tests/pdf_paper_source.rs"
[[test]]
name = "pdf_retained_glyphs"
path = "tests/pdf_retained_glyphs.rs"
[[test]]
name = "pdf_review_regressions"
path = "tests/pdf_review_regressions.rs"
[[test]]
name = "placed_text_layout"
path = "tests/placed_text_layout.rs"
[[test]]
name = "prepared_object_layout"
path = "tests/prepared_object_layout.rs"
[[test]]
name = "prepared_tables"
path = "tests/prepared_tables.rs"
[[test]]
name = "shape_orientation_flags"
path = "tests/shape_orientation_flags.rs"
[[test]]
name = "shape_paint_source_review"
path = "tests/shape_paint_source_review.rs"
[[test]]
name = "shape_template_paths"
path = "tests/shape_template_paths.rs"
[[test]]
name = "shape_text_frame"
path = "tests/shape_text_frame.rs"
[[test]]
name = "source_identity_review"
path = "tests/source_identity_review.rs"
[[test]]
name = "span_interval_types"
path = "tests/span_interval_types.rs"
[[test]]
name = "stroke_metadata"
path = "tests/stroke_metadata.rs"
[[test]]
name = "structural_images"
path = "tests/structural_images.rs"
[[test]]
name = "structural_shapes"
path = "tests/structural_shapes.rs"
[[test]]
name = "structural_strokes"
path = "tests/structural_strokes.rs"
[[test]]
name = "structural_text_boxes"
path = "tests/structural_text_boxes.rs"
[[test]]
name = "style_resolution_scaling"
path = "tests/style_resolution_scaling.rs"
[[test]]
name = "svg_face_identity"
path = "tests/svg_face_identity.rs"
[[test]]
name = "table_drawing_origin"
path = "tests/table_drawing_origin.rs"
[[test]]
name = "terminal_paragraph_layout"
path = "tests/terminal_paragraph_layout.rs"
[[test]]
name = "text_background_spans"
path = "tests/text_background_spans.rs"
[[test]]
name = "text_geometry_diagnostics"
path = "tests/text_geometry_diagnostics.rs"
[[test]]
name = "text_geometry_review_regressions"
path = "tests/text_geometry_review_regressions.rs"
[[test]]
name = "text_layout_scaling"
path = "tests/text_layout_scaling.rs"
[[test]]
name = "text_styles"
path = "tests/text_styles.rs"
[[test]]
name = "vector_bidi_objects"
path = "tests/vector_bidi_objects.rs"
[[test]]
name = "vector_bidi_text"
path = "tests/vector_bidi_text.rs"
[[test]]
name = "vector_checkbox_markers"
path = "tests/vector_checkbox_markers.rs"
[[test]]
name = "vector_list_markers"
path = "tests/vector_list_markers.rs"
[[test]]
name = "vector_non_latin_text"
path = "tests/vector_non_latin_text.rs"
[[test]]
name = "vector_text_fallback"
path = "tests/vector_text_fallback.rs"
[[test]]
name = "vector_text_positions"
path = "tests/vector_text_positions.rs"
[[test]]
name = "wrapped_bidi_contexts"
path = "tests/wrapped_bidi_contexts.rs"
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.bitflags]
version = "2.9"
optional = true
[dependencies.bytemuck]
version = "1.22"
features = ["extern_crate_alloc"]
optional = true
[dependencies.cesu8]
version = "1.1.0"
[dependencies.cssparser]
version = "0.38.0"
optional = true
[dependencies.fontdb]
version = "0.23.0"
optional = true
default-features = false
[dependencies.krilla]
version = "0.8.2"
features = ["raster-images"]
optional = true
default-features = false
[dependencies.once_cell]
version = "1.21.4"
features = [
"alloc",
"race",
]
optional = true
default-features = false
[dependencies.png]
version = "0.18.1"
optional = true
[dependencies.read-fonts]
version = "=0.43.3"
features = [
"experimental_font_api",
"std",
]
optional = true
default-features = false
[dependencies.resvg]
version = "0.47.0"
optional = true
[dependencies.rustybuzz]
version = "0.20.1"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
optional = true
[dependencies.sha2]
version = "0.10.9"
[dependencies.skrifa]
version = "0.42.0"
optional = true
[dependencies.smallvec]
version = "1.15.1"
features = [
"union",
"const_new",
"write",
]
optional = true
[dependencies.svg]
version = "0.18.0"
optional = true
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tiny-skia]
version = "0.12.0"
optional = true
[dependencies.unicode-bidi]
version = "0.3.18"
optional = true
[dependencies.unicode-linebreak]
version = "0.1.5"
optional = true
[dependencies.unicode-script]
version = "0.5.8"
optional = true
[dependencies.unicode-segmentation]
version = "1.13.3"
optional = true
[dependencies.usvg]
version = "0.47.0"
optional = true
[dependencies.write-fonts]
version = "0.48.1"
optional = true
[dependencies.zip]
version = "8.2.0"
features = ["deflate"]
default-features = false
[dev-dependencies.lopdf]
version = "0.42.0"
default-features = false
[dev-dependencies.resvg]
version = "0.47.0"
[dev-dependencies.roxmltree]
version = "0.21.1"
[dev-dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1.0.149"
[dev-dependencies.svgtypes]
version = "0.16.1"