Code Monkey home page Code Monkey logo

fuse-j-2.4-prerelease's Introduction

FUSE-J

General Information

FUSE-J Java bindings for FUSE (Filesystem in USErspace) is a Java API that uses JNI bindings to FUSE library and enables writing Linux filesystems in Java language.

FUSE (Filesystem in USErspace) is a simple interface for userspace programs to export a virtual filesystem to the linux kernel.

FUSE is writen by Miklos Szeredi ([email protected]) and can be downloaded from

http://fuse.sourceforge.net/

News

2005-05-18: new relase: FUSE-J 2.2.3

JNI part of FUSE-J (libjavafs.so) now compiles on amd64 Linux machines (if it runs remains to be seen). The changes that were done are:

added option -fPIC to gcc invocations in jni/Makefile.

LDPATH variable in jni/Makefile was hardcoded. Now it is set by including jvm_ldpath.def file that is generated by running a Java program which produces correct library paths by looking into System.getProperty(“java.library.path”). This way we can potentially build with any JDK version on any FUSE supported platform (not just SUN's JDK on i386 Linux).

libjavafs.so is now linked with a shared libfuse.so (it was linked with static libfuse.a before, but that didn't work on amd64 machines). When mounting a filesystem you have to set LD_LIBRARY_PATH to include both libfuse.so directory and libjavafs.so directory (see the example zipfs_mount.sh script).

Note that FUSE-J 2.2.3 compiles on amd64 machines (compilation tested on Fedora Core 3 for amd64) but was not run-tested on this architecture. That's because I don't have root access to the SourceForge's compile-farm amd64-linux machine which is needed to be able to load FUSE kernel module. Can someone try this version (example zipfs_mount.sh is enough) on amd64 (and maybe other) architecture?

Download this version from:

http://www.select-tech.si/fuse/fuse-j-2.2.3.tar.gz

2005-04-20: new relase: FUSE-J 2.2.2

Changes:

The main change in this release is that the native to Java API is now byte oriented (not character oriented as before) and that encoding of file names and paths is done in Java (not forced to UTF-8 anymore). This is acomplished with the following:

The interface that JNI bindings invoke is now fuse.FuseFS (and not fuse.Filesystem any more). This interface is byte oriented. This means that any file or path name is passed as either a direct java.nio.ByteBuffer (the fastest way for Java to read from and/or write to native memeory locations) or a byte[] array. It is not meant that Java filesystem implementations would implement this interface directly but instead use fuse.FilesystemToFuseFSAdapter class to convert between a byte oriented and String oriented API. You can specify an encoding as a parameter to fuse.FilesystemToFuseFSAdapter constructor.

Multithreaded operation is fixed now. If FUSE library calls Java in multiple threads, those threads are now bound to Java threads as daemon threads so that after unmounting the filesystem (when main_loop returns) JVM can exit normally.

Download this version from:

http://www.select-tech.si/fuse/fuse-j-2.2.2.tar.gz

2005-04-18 afternoon: new release: FUSE-J 2.2.1

Changes:

Incorporated a patch from Daniel Wunsch <[email protected]> (thanks) for a bug that prevented the propagation of errno from Java to C.

Started to refactor for using new FUSE API (FUSE_USE_VERSION 22). This caused the Java API to change. fuse.Filesystem interface has 2 new methods (flush, fsync) and some methods have changed signature (namely: open now returns a filehandle, read, write and release have an additional filehandle parameter and write has an aditional flag indicating a writepage operation).

fuse.FuseDirEnt has an aditional inode field, so that a filesystem can return inode numbers.

Old fuse.Filesystem interface has been renamed to fuse.Filesystem1 and an adapter class fuse.Filesystem1ToFilesystemAdapter has been writen so that old filesystem implementations can be used unchanged (just replace implements fuse.Filesystem with implements fuse.Filesystem1).

Download this version from:

http://www.select-tech.si/fuse/fuse-j-2.2.1.tar.gz

Plans for future include:

Change fuse.Filesystem API to use byte[] instead of String so that file names encoding will not be forced to UTF-8 as is now done in JNI bindings but could be done in Java instead. Update fuse.Filesystem1ToFilesystemAdapter to work with this new API. (DONE in FUSE-J 2.2.2)

Extend fuse.Filesystem API to include methods for working with extended attributes.

Figure out how to pass the client info (struct fuse_context) to the Java API.

2005-04-18: After a year and a half of silence and a few Emails I got from various people asking about the FUSE-J binding I decided to update the software to current FUSE version (2.2.1).

I used the patch from Tim Moreton <[email protected]> (thanks) and made some other minor modifications to compile and work with Java 5. You can download this version from:

http://www.select-tech.si/fuse/fuse-j-2.2.tar.gz

Installation

First you must get and install the FUSE kernel module and library (se above). By default FUSE library is installed into /usr/local/lib and header files not be forced to UTF-8 as is now done in JNI bindings but could be done in Java instead. U e 2.2.2)

Extend fuse.Filesystem API to include methods for working with extended attributes.

Figure out how to pass the client info (struct fuse_context) to the Java API.
//ith extended attributes.

Figure out how to pass the client info (liI.

2005-04-18: After a year and a half of silence and a few Emails I got from various people askin s I got from various people asking about the FUSE-J binding I deci'
[email protected]> (thanks) and made some other minor modifications to compile and work with Java 5. You can download this version from:

http://www.select-tech.se  5. You can download this version from:

http://www.select-tech.si/fuse/fuse-j-2.2.tar.gz

Installi in Java instead. U e 2.2.2)

Extend fuse.Filesystem API to include methods for working with extended attributes.

Figure out how to pass the client info (struct fuse_context) to the Java API.
//ith extended attributes.

Figure out how to pass the client info (liI.

2005-04-18: After a year and a half of silence and a few Emj- I got from various people askin s I got from various people asking about the FUSE-J binding I deci'
[email protected]> (thanks) and made some other minor modifications to compile and work with Java 5. You can download this version from:

http://www.select-tech.se  5. You can download this version from:

http://www.select-tefi.si/fuse/fuse-j-2.2.tar.gz

Installi in Java instead. U e 2.2.2)

Extend fuse.Filesystem API to include methods for working with extended attributes.

Figure out how to pass the client info (struct fuse_context) to the Java API.
//ith extended attributes.

Figure out how to pass the client info (liI.

2005-04-18: After a year thExtend fuse.Filesystem API to include methods for working with eE  to pass the client info (struct fuse_context) to th

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.