mirror of
				https://github.com/falk-werner/webfuse
				synced 2025-06-13 12:54:15 +00:00 
			
		
		
		
	replaces ASCII art by UML diagram
This commit is contained in:
		
							parent
							
								
									c68106f87d
								
							
						
					
					
						commit
						f7d47fcc45
					
				
							
								
								
									
										29
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								README.md
									
									
									
									
									
								
							@ -33,34 +33,7 @@ webfuse solves this problem by using the [WebSocket](https://en.wikipedia.org/wi
 | 
			
		||||
 | 
			
		||||
## Concept
 | 
			
		||||
 | 
			
		||||
    +---------------------+  +-------------+      +------+
 | 
			
		||||
    | Filesystem Provider |  |   webfuse   |      | user |
 | 
			
		||||
    |  (e.g. Webbrowser)  |  |   daemon    |      |      |
 | 
			
		||||
    +----------+----------+  +------+------+      +---+--+
 | 
			
		||||
               |                    |                 |
 | 
			
		||||
               |                  +-+-+               |
 | 
			
		||||
               |                  |   +--+            |
 | 
			
		||||
               |                  |   |  | fuse_mount |
 | 
			
		||||
               |                  |   +<-+            |
 | 
			
		||||
               |                  |   |               |
 | 
			
		||||
               |                  |   +--+            |
 | 
			
		||||
               |                  |   |  | start ws   |
 | 
			
		||||
               |                  |   +<-+            |
 | 
			
		||||
               |                  +-+-+               |
 | 
			
		||||
               |                    |                 |
 | 
			
		||||
             +-+-+     connect    +-+-+               |
 | 
			
		||||
             |   |--------------->|   |               |
 | 
			
		||||
             +-+-+                +-+-+               |
 | 
			
		||||
               |                    |                 |
 | 
			
		||||
               |                  +-+-+      ls     +-+-+
 | 
			
		||||
             +-+-+     readdir    |   |<------------+   |
 | 
			
		||||
             |   |<---------------+   |             |   |
 | 
			
		||||
             |   |                |   |             |   |
 | 
			
		||||
             |   |  readdir_resp  |   |             |   |
 | 
			
		||||
             |   +--------------->|   |   [., ..]   |   |
 | 
			
		||||
             +-+-+                |   +------------>|   |
 | 
			
		||||
               |                  +-+-+             +-+-+
 | 
			
		||||
               |                    |                 |
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
With webfuse it is possible to implement remote filesystems based on websockets.
 | 
			
		||||
A reference implementation of such a daemon is provided within the examples. The picture above describes the workflow:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								doc/concept.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								doc/concept.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 30 KiB  | 
							
								
								
									
										30
									
								
								doc/concept.uml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								doc/concept.uml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
@startuml
 | 
			
		||||
participant "Filesystem Provider\n(e.g. Webbrowser)" as provider
 | 
			
		||||
participant "webfuse\ndaemon" as daemon
 | 
			
		||||
actor "user" as user
 | 
			
		||||
 | 
			
		||||
group startup
 | 
			
		||||
daemon -> daemon : fuse_mount
 | 
			
		||||
daemon -> daemon : start ws
 | 
			
		||||
end
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
group connect
 | 
			
		||||
provider -> daemon : connect
 | 
			
		||||
    opt authentication
 | 
			
		||||
    provider -> daemon: authenticate
 | 
			
		||||
    daemon -> daemon: check credentials
 | 
			
		||||
    daemon --> provider: okay
 | 
			
		||||
    end
 | 
			
		||||
end
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
group directory listing
 | 
			
		||||
user     -> daemon : ls
 | 
			
		||||
daemon   -> provider : readdir
 | 
			
		||||
provider --> daemon : readdir_resp
 | 
			
		||||
daemon   --> user : "[., ..]"
 | 
			
		||||
end
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
@enduml
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user