# 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