{
  "_id": "6a13eaabacfb0bcc41d2e218",
  "Package": "SafeMapper",
  "Type": "Package",
  "Title": "Fault-Tolerant Functional Programming with Automatic\nCheckpointing",
  "Version": "1.0.0",
  "Authors@R": "person(\"Zaoqu\", \"Liu\", email = \"liuzaoqu@163.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-0452-742X\"))",
  "Description": "Provides drop-in replacements for 'purrr' and 'furrr'\nmapping functions with built-in fault tolerance, automatic\ncheckpointing, and seamless recovery capabilities. When\nlong-running computations are interrupted due to errors, system\ncrashes, or other failures, simply re-run the same code to\nautomatically resume from the last checkpoint. Ideal for\nlarge-scale data processing, API calls, web scraping, and other\ntime-intensive operations where reliability is critical.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "URL": "https://github.com/Zaoqu-Liu/SafeMapper",
  "BugReports": "https://github.com/Zaoqu-Liu/SafeMapper/issues",
  "RoxygenNote": "7.3.3",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Repository": "https://zaoqu-liu.r-universe.dev",
  "Date/Publication": "2026-01-22 20:17:38 UTC",
  "RemoteUrl": "https://github.com/Zaoqu-Liu/SafeMapper",
  "RemoteRef": "main",
  "RemoteSha": "5ffddad8a0862180dd3306e8e7abfa79a332c231",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-25 06:19:51 UTC",
    "User": "root"
  },
  "Author": "Zaoqu Liu [aut, cre] (ORCID: <https://orcid.org/0000-0002-0452-742X>)",
  "Maintainer": "Zaoqu Liu <liuzaoqu@163.com>",
  "MD5sum": "d81db5226fed7957e1f03b8af9665a73",
  "_user": "zaoqu-liu",
  "_type": "src",
  "_file": "SafeMapper_1.0.0.tar.gz",
  "_fileid": "4084c1cf253dff33bb7a8e4c24d8f997e1e887a078aad9ce3089fb45fbc1744d",
  "_filesize": 254376,
  "_sha256": "4084c1cf253dff33bb7a8e4c24d8f997e1e887a078aad9ce3089fb45fbc1744d",
  "_created": "2026-05-25T06:19:51.000Z",
  "_published": "2026-05-25T06:22:35.014Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77666054049,
      "time": 132,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7192773785"
    },
    {
      "job": 77666054044,
      "time": 123,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7192771840"
    },
    {
      "job": 77666054071,
      "time": 69,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7192761744"
    },
    {
      "job": 77666054116,
      "time": 110,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7192769418"
    },
    {
      "job": 77665744361,
      "time": 187,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7192747723"
    },
    {
      "job": 77666054040,
      "time": 101,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7192767790"
    },
    {
      "job": 77666054066,
      "time": 75,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7192762836"
    },
    {
      "job": 77666054068,
      "time": 74,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7192762647"
    },
    {
      "job": 77666054058,
      "time": 75,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7192763221"
    }
  ],
  "_buildurl": "https://github.com/r-universe/zaoqu-liu/actions/runs/26386388858",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/Zaoqu-Liu/SafeMapper",
  "_commit": {
    "id": "5ffddad8a0862180dd3306e8e7abfa79a332c231",
    "author": "Zaoqu-Liu <liuzaoqu@163.com>",
    "committer": "Zaoqu-Liu <liuzaoqu@163.com>",
    "message": "Enhance README with comprehensive documentation links\n\n- Add navigation bar with quick links to docs, reference, tutorials\n- Add emoji icons for better visual organization\n- Link each function to its reference documentation\n- Add use cases table with links to specific examples\n- Reorganize tutorials section with time estimates and levels\n- Add quick links section for easy navigation\n- Add contributing section and footer links\n- Link key features to relevant tutorial pages\n",
    "time": 1769113058
  },
  "_maintainer": {
    "name": "Zaoqu Liu",
    "email": "liuzaoqu@163.com",
    "login": "zaoqu-liu",
    "orcid": "0000-0002-0452-742X",
    "description": "AI4S",
    "uuid": 68080738
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5.0",
      "role": "Depends"
    },
    {
      "package": "purrr",
      "version": ">= 0.3.0",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "furrr",
      "version": ">= 0.2.0",
      "role": "Suggests"
    },
    {
      "package": "future",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    }
  ],
  "_owner": "zaoqu-liu",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-45",
      "n": 1
    },
    {
      "week": "2026-04",
      "n": 7
    }
  ],
  "_tags": [],
  "_stars": 1,
  "_contributors": [
    {
      "user": "zaoqu-liu",
      "count": 8,
      "uuid": 68080738
    }
  ],
  "_userbio": {
    "uuid": 68080738,
    "type": "user",
    "name": "LIU Zaoqu",
    "description": "AI4S"
  },
  "_downloads": {
    "count": 1,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/SafeMapper"
  },
  "_devurl": "https://github.com/zaoqu-liu/safemapper",
  "_searchresults": 12,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/SafeMapper.html",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "1.0.0",
      "date": "2026-01-31"
    }
  ],
  "_exports": [
    "s_clean_sessions",
    "s_configure",
    "s_future_imap",
    "s_future_map",
    "s_future_map_chr",
    "s_future_map_dbl",
    "s_future_map_dfc",
    "s_future_map_dfr",
    "s_future_map_int",
    "s_future_map_lgl",
    "s_future_map2",
    "s_future_map2_chr",
    "s_future_map2_dbl",
    "s_future_map2_dfc",
    "s_future_map2_dfr",
    "s_future_map2_int",
    "s_future_map2_lgl",
    "s_future_pmap",
    "s_future_walk",
    "s_future_walk2",
    "s_imap",
    "s_imap_chr",
    "s_map",
    "s_map_chr",
    "s_map_dbl",
    "s_map_dfc",
    "s_map_dfr",
    "s_map_int",
    "s_map_lgl",
    "s_map2",
    "s_map2_chr",
    "s_map2_dbl",
    "s_map2_dfc",
    "s_map2_dfr",
    "s_map2_int",
    "s_map2_lgl",
    "s_pmap",
    "s_possibly",
    "s_quietly",
    "s_safely",
    "s_walk",
    "s_walk2"
  ],
  "_help": [
    {
      "page": "s_clean_sessions",
      "title": "Clean Old SafeMapper Sessions",
      "topics": [
        "s_clean_sessions"
      ]
    },
    {
      "page": "s_configure",
      "title": "Configure SafeMapper Settings",
      "topics": [
        "s_configure"
      ]
    },
    {
      "page": "s_future_map",
      "title": "Safe Future Map - Parallel with Auto-Recovery",
      "topics": [
        "s_future_map",
        "s_future_map_chr",
        "s_future_map_dbl",
        "s_future_map_dfc",
        "s_future_map_dfr",
        "s_future_map_int",
        "s_future_map_lgl"
      ]
    },
    {
      "page": "s_future_map2",
      "title": "Safe Future Map2 - Parallel Two-Input with Auto-Recovery",
      "topics": [
        "s_future_map2",
        "s_future_map2_chr",
        "s_future_map2_dbl",
        "s_future_map2_dfc",
        "s_future_map2_dfr",
        "s_future_map2_int",
        "s_future_map2_lgl"
      ]
    },
    {
      "page": "s_imap",
      "title": "Safe IMap - Drop-in Replacement for purrr::imap with Auto-Recovery",
      "topics": [
        "s_future_imap",
        "s_imap",
        "s_imap_chr"
      ]
    },
    {
      "page": "s_map",
      "title": "Safe Map - Drop-in Replacement for purrr::map with Auto-Recovery",
      "topics": [
        "s_map",
        "s_map_chr",
        "s_map_dbl",
        "s_map_dfc",
        "s_map_dfr",
        "s_map_int",
        "s_map_lgl"
      ]
    },
    {
      "page": "s_map2",
      "title": "Safe Map2 - Drop-in Replacement for purrr::map2 with Auto-Recovery",
      "topics": [
        "s_map2",
        "s_map2_chr",
        "s_map2_dbl",
        "s_map2_dfc",
        "s_map2_dfr",
        "s_map2_int",
        "s_map2_lgl"
      ]
    },
    {
      "page": "s_pmap",
      "title": "Safe PMap - Drop-in Replacement for purrr::pmap with Auto-Recovery",
      "topics": [
        "s_future_pmap",
        "s_pmap"
      ]
    },
    {
      "page": "s_possibly",
      "title": "Safe Possibly - Wrap Function to Return Default on Error",
      "topics": [
        "s_possibly"
      ]
    },
    {
      "page": "s_quietly",
      "title": "Safe Quietly - Wrap Function to Capture Side Effects",
      "topics": [
        "s_quietly"
      ]
    },
    {
      "page": "s_safely",
      "title": "Safe Safely - Wrap Function to Capture Errors",
      "topics": [
        "s_safely"
      ]
    },
    {
      "page": "s_walk",
      "title": "Safe Walk - Drop-in Replacement for purrr::walk with Auto-Recovery",
      "topics": [
        "s_future_walk",
        "s_future_walk2",
        "s_walk",
        "s_walk2"
      ]
    }
  ],
  "_readme": "https://github.com/Zaoqu-Liu/SafeMapper/raw/main/README.md",
  "_rundeps": [
    "cli",
    "digest",
    "glue",
    "lifecycle",
    "magrittr",
    "purrr",
    "rlang",
    "vctrs"
  ],
  "_vignettes": [
    {
      "source": "best-practices.Rmd",
      "filename": "best-practices.html",
      "title": "Best Practices for Production Use",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Architecture Patterns",
        "Pattern 1: The Robust Pipeline",
        "Implementation",
        "Configuration Best Practices",
        "Environment-Based Configuration",
        "Configuration Decision Tree",
        "Error Handling Strategies",
        "The Three-Layer Defense",
        "Error Recovery Workflow",
        "Session Management",
        "Naming Convention",
        "Cleanup Strategy",
        "Performance Optimization",
        "Batch Size Tuning",
        "Memory Management",
        "Monitoring and Logging",
        "Progress Tracking",
        "Production Checklist",
        "Anti-Patterns to Avoid",
        "Summary",
        "Additional Resources"
      ],
      "created": "2026-01-22 20:10:52",
      "modified": "2026-01-22 20:10:52",
      "commits": 1
    },
    {
      "source": "core-concepts.Rmd",
      "filename": "core-concepts.html",
      "title": "Core Concepts and Architecture",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Architecture Overview",
        "1. Fingerprinting Mechanism",
        "What is a Fingerprint?",
        "Fingerprint Generation Flow",
        "Feature Selection Rationale",
        "Custom Session IDs",
        "2. Checkpointing Mechanism",
        "Checkpoint Data Structure",
        "Checkpoint Save Timing",
        "Configuring Batch Size",
        "3. Auto-Recovery Mechanism",
        "Recovery Flow",
        "Recovery Demo",
        "4. Error Retry Mechanism",
        "Retry Flow",
        "Configure Retry Attempts",
        "5. Storage Location",
        "Complete Execution Flow",
        "Design Principles",
        "Next Steps"
      ],
      "created": "2026-01-22 20:10:52",
      "modified": "2026-01-22 20:10:52",
      "commits": 1
    },
    {
      "source": "error-handling.Rmd",
      "filename": "error-handling.html",
      "title": "Error Handling Strategies",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Error Handling Architecture",
        "Layer 1: Built-in Fault Tolerance",
        "Automatic Retry",
        "Retry Flow Diagram",
        "Layer 2: Error Wrapper Functions",
        "s_safely() - Capture Errors",
        "Using s_safely with Mapping",
        "s_possibly() - Default on Error",
        "Using s_possibly for Robust Pipelines",
        "s_quietly() - Capture Side Effects",
        "Comparison of Error Handlers",
        "Combining Strategies",
        "Strategy 1: s_safely + Post-Processing",
        "Strategy 2: s_possibly for Clean Pipelines",
        "Strategy 3: Multi-Layer Protection",
        "Decision Guide",
        "Error Handling Patterns",
        "Pattern 1: Fail Fast",
        "Pattern 2: Log and Continue",
        "Pattern 3: Collect Errors for Reporting",
        "Best Practices",
        "Next Steps"
      ],
      "created": "2026-01-22 20:10:52",
      "modified": "2026-01-22 20:10:52",
      "commits": 1
    },
    {
      "source": "map-functions.Rmd",
      "filename": "map-functions.html",
      "title": "Map Functions: A Complete Guide",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Function Family Overview",
        "s_map Family: Single-Input Mapping",
        "s_map - Basic Mapping",
        "s_map_chr - Return Character Vector",
        "s_map_dbl - Return Numeric Vector",
        "s_map_int - Return Integer Vector",
        "s_map_lgl - Return Logical Vector",
        "s_map_dfr - Return Data Frame (Row-Bind)",
        "s_map_dfc - Return Data Frame (Column-Bind)",
        "s_map2 Family: Dual-Input Mapping",
        "s_map2 Basic Usage",
        "Practical Examples",
        "s_pmap: Multi-Input Mapping",
        "s_pmap Basic Usage",
        "Combining with Data Frames",
        "s_imap: Indexed Mapping",
        "s_imap Basic Usage",
        "s_walk Family: Side-Effect Functions",
        "s_walk Basic Usage",
        "s_walk2 Dual-Input Side Effects",
        "Function Parameter Passing",
        "Session ID Usage",
        "Performance Considerations",
        "Common Patterns",
        "Pattern 1: Data Transformation Pipeline",
        "Pattern 2: Conditional Processing",
        "Pattern 3: Safe NULL Handling",
        "Next Steps"
      ],
      "created": "2026-01-22 20:10:52",
      "modified": "2026-01-22 20:10:52",
      "commits": 1
    },
    {
      "source": "parallel-processing.Rmd",
      "filename": "parallel-processing.html",
      "title": "Parallel Processing with SafeMapper",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Why Parallel + Fault Tolerance?",
        "Prerequisites",
        "Setting Up Parallel Processing",
        "Step 1: Load Required Packages",
        "Step 2: Configure Workers",
        "Step 3: Use s_future_* Functions",
        "Available Parallel Functions",
        "Basic Usage Examples",
        "s_future_map",
        "s_future_map2",
        "s_future_pmap",
        "Execution Flow",
        "Configuration Options",
        "Batch Size for Parallel",
        "furrr Options",
        "When to Use Parallel Processing",
        "Good Use Cases for Parallel",
        "Poor Use Cases for Parallel",
        "Handling Progress",
        "Error Handling in Parallel",
        "Best Practices",
        "Complete Example",
        "Next Steps"
      ],
      "created": "2026-01-22 20:10:52",
      "modified": "2026-01-22 20:10:52",
      "commits": 1
    },
    {
      "source": "quick-start.Rmd",
      "filename": "quick-start.html",
      "title": "Quick Start: Get Up and Running in 5 Minutes",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why SafeMapper?",
        "Installation",
        "Your First Example: From purrr to SafeMapper",
        "Traditional Approach (using purrr)",
        "The SafeMapper Way",
        "Core Features Demo",
        "1. Automatic Recovery",
        "2. Multiple Output Types",
        "3. Dual-Input Mapping",
        "4. Multi-Input Mapping",
        "Function Reference Table",
        "Workflow Diagram",
        "Configuration (Optional)",
        "Clean Old Sessions",
        "Next Steps",
        "Summary"
      ],
      "created": "2026-01-22 20:10:52",
      "modified": "2026-01-22 20:10:52",
      "commits": 1
    },
    {
      "source": "real-world-examples.Rmd",
      "filename": "real-world-examples.html",
      "title": "Real-World Examples",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Example 1: Web API Data Collection",
        "Scenario",
        "Implementation",
        "Convert to Data Frame",
        "Example 2: Batch File Processing",
        "Example 3: Machine Learning Cross-Validation",
        "Example 4: Web Scraping Pipeline",
        "Example 5: Parallel Bioinformatics Pipeline",
        "Example 6: Database Migration",
        "Quick Reference: Configuration by Use Case",
        "Next Steps"
      ],
      "created": "2026-01-22 20:10:52",
      "modified": "2026-01-22 20:10:52",
      "commits": 1
    },
    {
      "source": "session-management.Rmd",
      "filename": "session-management.html",
      "title": "Session and Configuration Management",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Configuration",
        "s_configure() - Customize Behavior",
        "Configuration Options Explained",
        "Configuration Recommendations",
        "Session IDs",
        "Automatic vs Manual Session IDs",
        "When to Use Manual Session IDs",
        "Checkpoint Storage",
        "Storage Location",
        "Checkpoint File Structure",
        "Session Cleanup",
        "s_clean_sessions() - Remove Old Checkpoints",
        "Cleanup Options",
        "Cleanup Workflow",
        "Workflow Examples",
        "Example 1: Long-Running Daily Job",
        "Example 2: Development and Debugging",
        "Example 3: Multiple Related Tasks",
        "Best Practices",
        "Troubleshooting",
        "Checkpoint Not Resuming",
        "Too Many Checkpoint Files",
        "Checkpoint Corrupted",
        "Next Steps"
      ],
      "created": "2026-01-22 20:10:52",
      "modified": "2026-01-22 20:10:52",
      "commits": 1
    }
  ],
  "_score": 3.9822712330395684,
  "_indexed": true,
  "_nocasepkg": "safemapper",
  "_universes": [
    "zaoqu-liu"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.0.0",
      "date": "2026-05-25T06:22:02.000Z",
      "distro": "noble",
      "commit": "5ffddad8a0862180dd3306e8e7abfa79a332c231",
      "fileid": "56b8a06723f421f3c68a7bc78dfe7a13da85cea329f8958bf0d4cc2bfc80e4d5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/zaoqu-liu/actions/runs/26386388858"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.0.0",
      "date": "2026-05-25T06:21:57.000Z",
      "distro": "noble",
      "commit": "5ffddad8a0862180dd3306e8e7abfa79a332c231",
      "fileid": "718ea1ed23184b4144d39632f0f06e3163562cc5c5f95ab0e9c5138b89b9de60",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/zaoqu-liu/actions/runs/26386388858"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.0.0",
      "date": "2026-05-25T06:21:07.000Z",
      "commit": "5ffddad8a0862180dd3306e8e7abfa79a332c231",
      "fileid": "b2c46c62fa2fae740f48ad954ecaf8a44b91c7a74a824556a83704015191e4bd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/zaoqu-liu/actions/runs/26386388858"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.0.0",
      "date": "2026-05-25T06:21:43.000Z",
      "commit": "5ffddad8a0862180dd3306e8e7abfa79a332c231",
      "fileid": "560c18c6348afd86c62611aeec7d30308ef48e78293dd07b27db15eeef95068c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/zaoqu-liu/actions/runs/26386388858"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.0.0",
      "date": "2026-05-25T06:21:47.000Z",
      "commit": "5ffddad8a0862180dd3306e8e7abfa79a332c231",
      "fileid": "af4e94f2178a7f6766a492fe84c0e4335b25f11d3b3f6df93b90d59e2bd6b553",
      "status": "success",
      "buildurl": "https://github.com/r-universe/zaoqu-liu/actions/runs/26386388858"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-05-25T06:21:03.000Z",
      "commit": "5ffddad8a0862180dd3306e8e7abfa79a332c231",
      "fileid": "473bf0f98a0a329b785204db35e40f41a0e783a37588cd1e7c0c7cd58cd4bf12",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/zaoqu-liu/actions/runs/26386388858"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-05-25T06:21:02.000Z",
      "commit": "5ffddad8a0862180dd3306e8e7abfa79a332c231",
      "fileid": "8cf0e5e938b2a6cc1c9bdcf2fa10d410873f12ab775a6573dabac8de05f584b6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/zaoqu-liu/actions/runs/26386388858"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-05-25T06:21:01.000Z",
      "commit": "5ffddad8a0862180dd3306e8e7abfa79a332c231",
      "fileid": "ae8fc1f52f4427e5c12f2521111124aa1fbfcd5d212645e0a9dc10f84b41a9c3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/zaoqu-liu/actions/runs/26386388858"
    }
  ]
}