package
1.0.36
Repository: https://github.com/axgrid/axutils.git
Documentation: pkg.go.dev

# README

axutils

axutils - это библиотека Go, предоставляющая различные утилиты для работы с каналами, коллекциями, криптографией, параллельным выполнением задач, сжатием данных и зашифрованной файловой системой. Эта библиотека разработана для упрощения работы с асинхронными операциями, обработкой данных и безопасностью в Go-приложениях.

Установка

Для установки библиотеки используйте команду:

go get github.com/axgrid/axutils

Зашифрованная файловая система (CryptoFS)

Пакет crypto_fs в axutils предоставляет инструменты для создания и использования зашифрованной файловой системы.

CryptoFSBuilder

CryptoFSBuilder позволяет создавать зашифрованную файловую систему, добавляя в неё файлы и папки.

Основные возможности:

  • Добавление отдельных файлов и целых папок
  • Шифрование содержимого с использованием AES
  • Сохранение зашифрованной файловой системы в файл

Пример использования:

builder := crypto_fs.NewCryptoFSBuilder().
    AddFile("/path/to/file.txt").
    AddFolder("/path/to/folder").
    WithAES([]byte("your-secret-key")).
    WithSavePath("encrypted_fs.bin")

err := builder.Save()
if err != nil {
    log.Fatal(err)
}

CryptoFS

CryptoFS - это интерфейс, реализующий fs.FS, который позволяет работать с зашифрованной файловой системой.

Основные возможности:

  • Открытие файлов из зашифрованной файловой системы
  • Чтение содержимого директорий
  • Поддержка стандартных операций файловой системы Go

Пример использования:

cryptoFS, err := crypto_fs.CryptoFSFromFile("encrypted_fs.bin", []byte("your-secret-key"))
if err != nil {
    log.Fatal(err)
}

// Открытие файла
file, err := cryptoFS.Open("/path/to/file.txt")
if err != nil {
    log.Fatal(err)
}
defer file.Close()

// Чтение содержимого файла
content, err := io.ReadAll(file)
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(content))

// Чтение содержимого директории
entries, err := cryptoFS.ReadDir("/path/to/folder")
if err != nil {
    log.Fatal(err)
}
for _, entry := range entries {
    fmt.Println(entry.Name())
}

Особенности и преимущества

  • Безопасное хранение файлов и папок в зашифрованном виде
  • Совместимость со стандартным интерфейсом fs.FS, что позволяет использовать CryptoFS с другими пакетами, ожидающими стандартную файловую систему
  • Возможность работы с относительными путями при создании CryptoFS
  • Поддержка обхода файловой системы с использованием fs.WalkDir

# Functions

No description provided by the author
No description provided by the author

# Structs

No description provided by the author

# Interfaces

No description provided by the author