Skip to content

A fuse-fs based application maps struct content to files

Notifications You must be signed in to change notification settings

IslamWalid/sfmapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Struct File Mapper

Struct File Mapper uses Filesystem in Userspace feature in Linux systems to map in-memory data (user struct) to accessible file system.

Package

  • Get the package:
go get github.com/IslamWalid/struct_file_mapper
  • Functionality:
Function Description
func Mount(mountPointPath string, structReference any) error Creates a filesystem and mounts it to the given mount point path.
func Unmount(mountPointPath string) error Unmount the filesystem in the given mount point path.

NOTE: Unmount the filesystem after using it using the Umount function, or through the command:

fusermount -u <mount_point_path>

Usage and Example

package main

import (
	"fmt"
	"os"
	"os/signal"
	"syscall"

	sfmapper "github.com/IslamWalid/struct_file_mapper"
)

type Person struct {
	Name   string
	Age    int
}

func main() {
    p := &Person{
    	Name: "Islam",
    	Age:  22,
    }

    // Create signal to recieve ctrl+c
    sigs := make(chan os.Signal)
    signal.Notify(sigs, syscall.SIGINT)

    go func() {
        <- sigs
        sfmapper.UnMount("person")
    }()

    // Create directory person to host the filesystem
    os.MkdirAll("person", 0777)

    // Start the filesystem
    err := sfmapper.Mount("person", p)
    if err != nil {
        fmt.Fprint(os.Stderr, err)
        os.Exit(1)
    }
}

NOTE: Arrays and slices are not supported.

About

A fuse-fs based application maps struct content to files

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published