Skip to content

Conversation

@martsokha
Copy link
Member

No description provided.

@martsokha martsokha self-assigned this Oct 1, 2025
@martsokha martsokha added feat help wanted needs extra attention or outside contributions feat request for or implementation of a new feature and removed feat labels Oct 1, 2025
- Remove nvisy-client, nvisy-server, nvisy-schema crates
- Remove all protobuf/grpc dependencies (tonic, prost, etc.)
- Remove protofiles directory
- Make jiff and serde always-on dependencies in nvisy-core
- Remove all #[cfg(feature = "serde")] and #[cfg(feature = "jiff")] gates
- Update CI/release workflows to remove protobuf steps
- Update README, CONTRIBUTING, CHANGELOG to reflect library focus
- Clean up .gitignore

This refactors the repository to work as a library-only crate,
removing the server/client architecture in favor of direct usage.
- Create central Engine struct in nvisy-engine with FormatRegistry integration
- Add EngineConfig for configuring file size limits, archive handling, parallel processing
- Add nvisy-archive dependency to nvisy-engine
- Create nvisy-docx stub crate with DocxFormat
- Create nvisy-pdf stub crate with PdfFormat
- Create nvisy-text stub crate with TextFormat
- Fix doc test in nvisy-archive (OsStr usage)
- All 202 unit tests passing
nvisy-core:
- Replace Mutex with OnceLock for ContentData SHA256 caching
- Use Uuid::new_v7() via ContentSource for DataReference
- Add Archive and Spreadsheet variants to ContentKind
- Delete Component trait and related status types
- Update Error type with convenience constructors for cross-crate reuse
- Delete SupportedFormat (use ContentKind instead)
- Add prelude module for common re-exports

nvisy-archive:
- Use tokio::task::spawn_blocking for CPU-bound decompression
- Add SevenZ variant to ArchiveType with 7z extension support
- Create ZipDirectoryBuilder and TarDirectoryBuilder for cleaner API
- Integrate with nvisy-core Error type via ArchiveErrorExt trait
- Add proper feature gates for all compression dependencies
- Remove deprecated compatibility wrappers

nvisy-document:
- Move Format structs to dedicated format.rs files
- Add conversion, metadata, and thumbnail modules
- Reorganize region types into format/region/ directory

All tests pass, no warnings.
- build.yml: Add format check, clippy, docs, and coverage jobs
- security.yml: Add cargo audit and cargo deny checks
- deny.toml: Add cargo-deny configuration for license and security checks
- Fix nvisy-core clippy warnings:
  - Use unsigned_abs() for timestamp conversion in ContentSource
  - Add #[must_use] attributes to source_error() and is_recoverable()
  - Allow cast_precision_loss for get_pretty_size()
  - Fix UUIDv7 doc formatting
  - Merge identical match arms in ErrorResource::priority_level()
  - Use separator in large numeric literals
  - Update format strings to use inline variables

- Fix nvisy-document clippy warnings:
  - Use derive(Default) with #[default] attribute for enums
  - Remove manual Default impls for DocumentInfo, TextStyle, RedactStyle, ThumbnailSize
  - Use std::io::Error::other() instead of Error::new(ErrorKind::Other, ...)
  - Remove redundant #[must_use] on validate() methods
  - Use clamp() instead of min().max() chain
  - Implement FromStr trait for ImageFormat, rename from_str to parse
  - Fix test to use struct initialization instead of field reassignment

- Fix documentation link warnings:
  - Use fully qualified paths in nvisy-core lib.rs
  - Fix ArchiveFileHandler -> ArchiveHandler reference
  - Remove unresolved DocumentFormat links in format crates

All CI checks now pass:
- cargo +nightly fmt --all -- --check
- cargo check --all-features --workspace
- cargo clippy --all-targets --all-features --workspace -- -D warnings
- cargo test --all-features --workspace
- cargo doc --no-deps --all-features --workspace
- cargo deny check all
- cargo audit
Remove multi-platform builds and coverage - not needed for a library
that will be consumed by a Linux server. Keep only essential checks:
- Format (nightly)
- Check & Clippy
- Test
- Docs
@martsokha martsokha merged commit e31fc38 into main Jan 15, 2026
5 checks passed
@martsokha martsokha deleted the init branch January 15, 2026 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat request for or implementation of a new feature help wanted needs extra attention or outside contributions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants