diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..d975958 --- /dev/null +++ b/README.md @@ -0,0 +1,86 @@ +Jimfs +===== + +Jimfs is an in-memory file system for Java 7 and above, implementing the +[java.nio.file](http://docs.oracle.com/javase/7/docs/api/java/nio/file/package-summary.html) +abstract file system APIs. + +[![Build Status](https://travis-ci.org/google/jimfs.svg?branch=master)](https://travis-ci.org/google/jimfs) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.google.jimfs/jimfs/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.google.jimfs/jimfs) + +Getting started +--------------- + +The latest release is [1.1](https://github.com/google/jimfs/releases/tag/v1.1). + +It is available in Maven Central as +[com.google.jimfs:jimfs:1.1](http://search.maven.org/#artifactdetails%7Ccom.google.jimfs%7Cjimfs%7C1.1%7Cjar): + +```xml +<dependency> + <groupId>com.google.jimfs</groupId> + <artifactId>jimfs</artifactId> + <version>1.1</version> +</dependency> +``` + +Basic use +--------- + +The simplest way to use Jimfs is to just get a new `FileSystem` instance from the `Jimfs` class and +start using it: + +```java +import com.google.common.jimfs.Configuration; +import com.google.common.jimfs.Jimfs; +... + +// For a simple file system with Unix-style paths and behavior: +FileSystem fs = Jimfs.newFileSystem(Configuration.unix()); +Path foo = fs.getPath("/foo"); +Files.createDirectory(foo); + +Path hello = foo.resolve("hello.txt"); // /foo/hello.txt +Files.write(hello, ImmutableList.of("hello world"), StandardCharsets.UTF_8); +``` + +What's supported? +----------------- + +Jimfs supports almost all the APIs under `java.nio.file`. It supports: + +- Creating, deleting, moving and copying files and directories. +- Reading and writing files with `FileChannel` or `SeekableByteChannel`, `InputStream`, + `OutputStream`, etc. +- Symbolic links. +- Hard links to regular files. +- `SecureDirectoryStream`, for operations relative to an _open_ directory. +- Glob and regex path filtering with `PathMatcher`. +- Watching for changes to a directory with a `WatchService`. +- File attributes. Built-in attribute views that can be supported include "basic", "owner", + "posix", "unix", "dos", "acl" and "user". Do note, however, that not all attribute views provide + _useful_ attributes. For example, while setting and reading POSIX file permissions is possible + with the "posix" view, those permissions will not actually affect the behavior of the file system. + +Jimfs also supports creating file systems that, for example, use Windows-style paths and (to an +extent) behavior. In general, however, file system behavior is modeled after UNIX and may not +exactly match any particular real file system or platform. + +License +------- + +``` +Copyright 2013 Google Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` |